資源簡介
多線程開發例子
開發工具: VS2017
版本:framework4.6.1

代碼片段和文件信息
using?System;
using?System.Windows.Forms;
using?System.Threading;
namespace?WinFormThread
{
????public?partial?class?frmMain?:?Form
????{
????????public?frmMain()
????????{
????????????InitializeComponent();
????????}
????????public?delegate?void?ShowwaitDelegate(bool?visible);
????????public?delegate?void?Calc();
????????public?delegate?void?SetTxtControl(int?i);
????????private?void?button2_Click(object?sender?EventArgs?e)
????????{
????????????Thread?thread?=?new?Thread(PostCalc);
????????????thread.IsBackground?=?true;
????????????thread.Start();
????????}
????????
????????private?void?PostCalc()
????????{
????????????try
????????????{
????????????????Showwait(true);
????????????????ManualResetEvent[]?_ManualEvents?=?new?ManualResetEvent[2];
????????????????_ManualEvents[0]?=?new?ManualResetEvent(false);
????????????????ThreadPool.QueueUserWorkItem(new?WaitCallback(calc1)?_ManualEvents[0]);
????????????????_ManualEvents[1]?=?new?ManualResetEvent(false);
????????????????ThreadPool.QueueUserWorkItem(new?WaitCallback(calc2)?_ManualEvents[1]);
????????????????WaitHandle.WaitAll(_ManualEvents);
????????????????Showwait(false);
????????????????MessageBox.Show(“執行完成“?“提示信息“?MessageBoxButtons.OK?MessageBoxIcon.Information);
????????????}
????????????catch(Exception?ex)
????????????{
????????????????MessageBox.Show(“PostCalc異常“?+?ex.ToString()“提示信息“?MessageBoxButtons.OK?MessageBoxIcon.Error);
????????????}
????????}
????????public?void?Showwait(bool?visible)
????????{
????????????if?(labTest.InvokeRequired)
????????????{
????????????????ShowwaitDelegate?showwaitDelegate?=?new?ShowwaitDelegate(Showwait);
????????????????this.Invoke(showwaitDelegate?new?object[]?{?visible?});
????????????}
????????????else
????????????{
????????????????labTest.Visible?=?visible;
????????????????labTest.Refresh();
????????????}
????????}
????????public?void?calc1(?object?state)
????????{
????????????int?i?=?0;
????????????while?(i?2000)
????????????{
????????????????i++;
????????????????setTextBox2(i);
????????????????Thread.Sleep(1);
????????????}
????????????ManualResetEvent?e?=?(ManualResetEvent)state;
????????????e.Set();
????????}??????
????????public?void?calc2(object?state)
????????{
????????????int?i?=?0;
????????????while?(i?1000)
????????????{
????????????????i++;
????????????????setTextBox3(i);
????????????????Thread.Sleep(1);
????????????}
????????????ManualResetEvent?e?=?(ManualResetEvent)state;
????????????e.Set();
????????}
????????public?void?setTextBox2(int?i)
????????{
????????????try
????????????{
????????????????if?(textBox2.InvokeRequired)
????????????????{
????????????????????SetTxtControl?setTxtControl?=?new?SetTxtControl(setTextBox2);
????????????????????this.BeginInvoke(setTxtControl?new?object[]{?i?});
????????????????}
????????????????else
????????????????{
????????????????????textBox2.Text?=?i.ToString();
????????????????????textBox2.R
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2017-11-16?15:04??WinFormThread\
?????目錄???????????0??2017-11-16?15:04??WinFormThread\.vs\
?????目錄???????????0??2017-11-16?15:04??WinFormThread\.vs\WinFormThread\
?????目錄???????????0??2017-11-16?15:05??WinFormThread\.vs\WinFormThread\v15\
?????文件???????47616??2017-11-23?19:10??WinFormThread\.vs\WinFormThread\v15\.suo
?????目錄???????????0??2017-11-16?15:05??WinFormThread\.vs\WinFormThread\v15\Server\
?????目錄???????????0??2017-11-23?19:10??WinFormThread\.vs\WinFormThread\v15\Server\sqlite3\
?????文件???????????0??2017-11-16?15:05??WinFormThread\.vs\WinFormThread\v15\Server\sqlite3\db.lock
?????文件??????598016??2017-11-23?19:10??WinFormThread\.vs\WinFormThread\v15\Server\sqlite3\storage.ide
?????目錄???????????0??2017-11-23?19:10??WinFormThread\WinFormThread\
?????文件????????1138??2017-11-16?15:04??WinFormThread\WinFormThread.sln
?????文件?????????189??2017-11-16?15:04??WinFormThread\WinFormThread\App.config
?????目錄???????????0??2017-11-23?19:04??WinFormThread\WinFormThread\bin\
?????目錄???????????0??2017-11-23?19:10??WinFormThread\WinFormThread\bin\Debug\
?????文件???????11264??2017-11-23?19:10??WinFormThread\WinFormThread\bin\Debug\WinFormThread.exe
?????文件?????????189??2017-11-16?15:04??WinFormThread\WinFormThread\bin\Debug\WinFormThread.exe.config
?????文件???????22016??2017-11-23?19:10??WinFormThread\WinFormThread\bin\Debug\WinFormThread.pdb
?????目錄???????????0??2017-11-23?19:04??WinFormThread\WinFormThread\bin\Release\
?????文件????????3866??2017-11-23?19:10??WinFormThread\WinFormThread\frmMain.cs
?????文件????????3916??2017-11-23?19:05??WinFormThread\WinFormThread\frmMain.Designer.cs
?????文件????????5817??2017-11-23?19:05??WinFormThread\WinFormThread\frmMain.resx
?????目錄???????????0??2017-11-16?15:04??WinFormThread\WinFormThread\obj\
?????目錄???????????0??2017-11-23?19:10??WinFormThread\WinFormThread\obj\Debug\
?????文件????????1464??2017-11-17?08:31??WinFormThread\WinFormThread\obj\Debug\DesignTimeResolveAssemblyReferences.cache
?????文件????????7196??2017-11-23?19:04??WinFormThread\WinFormThread\obj\Debug\DesignTimeResolveAssemblyReferencesInput.cache
?????文件???????????0??2017-11-16?15:04??WinFormThread\WinFormThread\obj\Debug\TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs
?????文件???????????0??2017-11-16?15:04??WinFormThread\WinFormThread\obj\Debug\TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs
?????文件???????????0??2017-11-16?15:04??WinFormThread\WinFormThread\obj\Debug\TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs
?????目錄???????????0??2017-11-16?15:04??WinFormThread\WinFormThread\obj\Debug\TempPE\
?????文件??????????42??2017-11-23?19:10??WinFormThread\WinFormThread\obj\Debug\WinFormThread.csproj.CoreCompileInputs.cache
?????文件?????????812??2017-11-23?19:10??WinFormThread\WinFormThread\obj\Debug\WinFormThread.csproj.FileListAbsolute.txt
............此處省略13個文件信息
- 上一篇:C#chart控件游標跟隨鼠標移動
- 下一篇:基于c#編寫的五子棋小游戲
評論
共有 條評論