110,529
社区成员
发帖
与我相关
我的任务
分享
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Threading;
namespace Te
{
//未做异常处理,仅做简要说明
public partial class Form1 : Form
{
//创建一个多线程的示例
Thread _BgThread;
//创建一个timer1,在timer1的tick事件中让Number的值每次递增加1
System.Windows.Forms.Timer timer1;
//用于测试多线程状态的数字
int Number = 0;
public Form1()
{
InitializeComponent();
timer1 = new System.Windows.Forms.Timer();
timer1.Tick += new EventHandler(timer1_Tick);
timer1.Interval = 200;
}
void timer1_Tick(object sender, EventArgs e)
{
Number++;
}
//运行在多线程中的方法
void ThreadMethod()
{
while (true)
{
//如果不用多线程的话,下面这句话是正确的
//button1.Text = "运行在多线程中的程序" + Number;
//但如果运行多线程的话,必须调用委托
this.Invoke(new delegateMethod(ShowNumber));
//如果需要传参数的话可以使用下面方法
//this.Invoke(new delegate(method),new object[]{method中的参数成员});
}
}
//委托
delegate void delegateMethod();
void ShowNumber()
{
button1.Text = "运行在多线程中的程序" + Number;
}
private void Form1_Load(object sender, EventArgs e)
{
_BgThread = new Thread(new ThreadStart(ThreadMethod));
_BgThread.Start();
timer1.Start();
}
}
}