C#多线程使用
using System;using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
int j = 0;
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
BackgroundWorker mWorker = new BackgroundWorker();
mWorker.WorkerSupportsCancellation = true;
// SumX要执行main函数
mWorker.DoWork += new DoWorkEventHandler(SumX);
// xxx是一个被调函数,可用于最后结果的输出以及显示
mWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(xxx);
mWorker.RunWorkerAsync();
}
private void SumX(object sender, EventArgs e)
{
for (int i = 0; i < 1000; i++)
{
j=j+i;
}
}
private void xxx(object sender, EventArgs e)
{
// 全局变量j
this.textBox1.Text = j.ToString();
}
}
}
通过mWorker.DoWork += new DoWorkEventHandler(SumX);使得C#窗体界面不会卡顿,即将主进程变为附加进程进行使用。
j是个全局变量;winform界面显示0-999的累加和;
百度网盘代码分享:https://pan.baidu.com/s/1nw16BGH
页:
[1]