資源簡介
C#使用委托和事件寫的,一個多線程進度條的Demo。

代碼片段和文件信息
using?System;
using?System.Collections.Generic;
using?System.ComponentModel;
using?System.Data;
using?System.Drawing;
using?System.Linq;
using?System.Text;
using?System.Windows.Forms;
using?System.Threading;
namespace?MultiThreadProcess_Test
{
????public?partial?class?Form1?:?Form
????{????????
????????protected?Thread?thread1?=?null;//開啟新的線程(用來處理數據)
????????public?static?bool?isStop?=?false;//控制線程的暫停和繼續的標記
????????public?AutoResetEvent?autoResetEvent?=?new?AutoResetEvent(false);//控制線程的暫停和繼續
????????private?delegate?void?MessageEventHandler(object?sender?ProgressBarValueEventArgs?e);
????????private?event?MessageEventHandler?messageEvent;
????????private?delegate?void?RefreshButtonEventHandler();
????????private?event?RefreshButtonEventHandler?refreshButtonEvent;
????????public?Form1()
????????{
????????????InitializeComponent();
????????????messageEvent?+=?new?MessageEventHandler(PassInfo);//第一種方式
????????????//messageEvent?+=?new?MessageEventHandler(ShowProcessing);//第二種方式(同刷新按鈕)
????????????refreshButtonEvent?+=?new?RefreshButtonEventHandler(RefreshButton);
????????????btnStart.Enabled?=?true;
????????????btnStop.Enabled?=?false;
????????????btnContinue.Enabled?=?false;
????????????btnOver.Enabled?=?false;
????????}
????????public?void?Thread_DataProcessing()
????????{
????????????ProgressBarValueEventArgs?progressbarValueEventArgs?=?new?ProgressBarValueEventArgs(0?“開始處理...“);
????????????ShowProcessing(this?progressbarValueEventArgs);//進度提示
????????????int?intCount?=?100;
????????????for?(int?i?=?0;?i?????????????{
????????????????progressbarValueEventArgs?=?new?ProgressBarValueEventArgs((int)((i?+?1)?*?100?/?intCount)?string.Format(“已處理{0}/{1}個數據“?(i?+?1)?intCount));
????????????????ShowProcessing(this?progressbarValueEventArgs);
????????????????System.Threading.Thread.Sleep(50);
????????????????if?(isStop)
????????????????????autoResetEvent.WaitOne();//線程暫停
????????????}
????????????progressbarValueEventArgs?=?new?ProgressBarValueEventArgs(100?“數據處理已完成“);
????????????ShowProcessing(this?progressbarValueEventArgs);
????????????refreshButtonEvent();//刷新按鈕
????????}
????????public?void?ShowProcessing(object?sender?ProgressBarValueEventArgs?e)
????????{
????????????this.Invoke(this.messageEvent?new?object[]?{?sender?e?});
????????????//this.BeginInvoke(this.messageDelegate?new?object[]?{?sender?e?});
????????????//if?(this.InvokeRequired)
????????????//{
????????????//????this.Invoke(this.messageEvent?new?object[]?{?sender?e?});
????????????//}
????????????//else
????????????//{
????????????//????this.lblProgressInfo.Text?=?string.Format(“{0}??{1}%“?e.DescriptionStr?e.Process);
????????????//????this.progressBar1.Value?=?e.Process;
????????????//}
????????}
????????private?void?PassInfo(object?sender?ProgressBarValueEventArgs?e)
????????{
????????????if?(thread1?==?null)
????????????{
????????????????this.
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????911??2016-09-18?09:14??MultiThreadProcess_Test\MultiThreadProcess_Test.sln
????..A..H.?????22016??2016-09-18?09:45??MultiThreadProcess_Test\MultiThreadProcess_Test.suo
?????文件???????6579??2016-09-18?09:43??MultiThreadProcess_Test\MultiThreadProcess_Test\Form1.cs
?????文件???????5236??2016-09-18?09:28??MultiThreadProcess_Test\MultiThreadProcess_Test\Form1.Designer.cs
?????文件???????5817??2016-09-14?09:33??MultiThreadProcess_Test\MultiThreadProcess_Test\Form1.resx
?????文件???????3761??2016-09-18?09:20??MultiThreadProcess_Test\MultiThreadProcess_Test\MultiThreadProcess_Test.csproj
?????文件????????504??2016-09-18?09:14??MultiThreadProcess_Test\MultiThreadProcess_Test\Program.cs
?????文件????????680??2016-09-18?09:21??MultiThreadProcess_Test\MultiThreadProcess_Test\ProgressBarValueEventArgs.cs
?????文件??????12800??2016-09-18?09:43??MultiThreadProcess_Test\MultiThreadProcess_Test\bin\Debug\MultiThreadProcess_Test.exe
?????文件??????26112??2016-09-18?09:43??MultiThreadProcess_Test\MultiThreadProcess_Test\bin\Debug\MultiThreadProcess_Test.pdb
?????文件??????11600??2016-09-18?16:25??MultiThreadProcess_Test\MultiThreadProcess_Test\bin\Debug\MultiThreadProcess_Test.vshost.exe
?????文件???????2855??2016-09-18?09:14??MultiThreadProcess_Test\MultiThreadProcess_Test\obj\x86\Debug\DesignTimeResolveAssemblyReferences.cache
?????文件???????6407??2016-09-18?09:43??MultiThreadProcess_Test\MultiThreadProcess_Test\obj\x86\Debug\DesignTimeResolveAssemblyReferencesInput.cache
?????文件???????1051??2016-09-18?16:25??MultiThreadProcess_Test\MultiThreadProcess_Test\obj\x86\Debug\MultiThreadProcess_Test.csproj.FileListAbsolute.txt
?????文件????????975??2016-09-18?09:30??MultiThreadProcess_Test\MultiThreadProcess_Test\obj\x86\Debug\MultiThreadProcess_Test.csproj.GenerateResource.Cache
?????文件??????12800??2016-09-18?09:43??MultiThreadProcess_Test\MultiThreadProcess_Test\obj\x86\Debug\MultiThreadProcess_Test.exe
?????文件????????180??2016-09-18?09:30??MultiThreadProcess_Test\MultiThreadProcess_Test\obj\x86\Debug\MultiThreadProcess_Test.Form1.resources
?????文件??????26112??2016-09-18?09:43??MultiThreadProcess_Test\MultiThreadProcess_Test\obj\x86\Debug\MultiThreadProcess_Test.pdb
?????文件????????180??2016-09-18?09:30??MultiThreadProcess_Test\MultiThreadProcess_Test\obj\x86\Debug\MultiThreadProcess_Test.Properties.Resources.resources
?????文件???????1378??2016-09-18?09:14??MultiThreadProcess_Test\MultiThreadProcess_Test\Properties\AssemblyInfo.cs
?????文件???????2898??2016-09-18?09:14??MultiThreadProcess_Test\MultiThreadProcess_Test\Properties\Resources.Designer.cs
?????文件???????5612??2016-09-18?09:14??MultiThreadProcess_Test\MultiThreadProcess_Test\Properties\Resources.resx
?????文件???????1110??2016-09-18?09:14??MultiThreadProcess_Test\MultiThreadProcess_Test\Properties\Settings.Designer.cs
?????文件????????249??2016-09-18?09:14??MultiThreadProcess_Test\MultiThreadProcess_Test\Properties\Settings.settings
?????目錄??????????0??2016-09-18?09:14??MultiThreadProcess_Test\MultiThreadProcess_Test\obj\x86\Debug\TempPE
?????目錄??????????0??2016-09-18?09:43??MultiThreadProcess_Test\MultiThreadProcess_Test\obj\x86\Debug
?????目錄??????????0??2016-09-18?09:30??MultiThreadProcess_Test\MultiThreadProcess_Test\bin\Debug
?????目錄??????????0??2016-09-18?09:18??MultiThreadProcess_Test\MultiThreadProcess_Test\bin\Release
?????目錄??????????0??2016-09-18?09:14??MultiThreadProcess_Test\MultiThreadProcess_Test\obj\x86
?????目錄??????????0??2016-09-18?09:18??MultiThreadProcess_Test\MultiThreadProcess_Test\bin
............此處省略7個文件信息
評論
共有 條評論