资源简介
多线程开发例子
开发工具: 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#编写的五子棋小游戏
相关资源
- C#多线程刷流量
- C#.net4.0 采用多线程 基于Socket的聊天室
- C# Winform线程创建子窗体
- winform 多线程 异步 文件操作(查询、
- 用c#写的多线程求PI
- C#多线程编程 线程与窗体交互源码.
- WinForm BackgroundWorker完美
- C# 写得使用固高的运动控制卡写得控
- C#编写的多线程多主机端口扫描程序
- C#多线程并行管理通过Task实现,可随
- C#多线程大文件
- C#蜘蛛爬虫源代码多线程
- winform程序仿迅雷
- Loading 动画+数据异步调用多线程
- C#多线程计算pi
- C#多线程进度条
- c#定时器+多线程
- c#编写串口通讯代码 多线程实现
- C#多线程编程 线程与窗体交互源码
- C# TCP网络通信小助手
- c#IPCO多线程并发业务处理
- C#基于TCP的Socket多线程通信包含服务端
- C#Socket多线程聊天室
- winform多线程
- C#多线程编程实战Code源代码
- 哲学家进餐问题C# 解决程序
- Asp.net多线程
- asp.net多线程日志记录源码
- C#调用PComm.dll
- C#多任务多线程组件V1.1[源代码]
评论
共有 条评论