多线程干点事情虽然很好,就是麻烦,改个UI都困难:
Thread th = new Thread(() => //新建线程
{
while (true) //来个死循环,一直去做一件事
{
Action action = () => //新建委托事件,因为线程不能直接去访问UI
{
textBox1.Text = n.ToString(); //由委托来处理UI事件,这里要放可以快速完成的事情,不然界面会卡,难受
};
this.Invoke(action); //做事情
Console.WriteLine(n);
n++; //变化一下,显示事情真的在做
Thread.Sleep(1000); //一定要把CPU控制权释放给主现程,我这么理解
}
});
th.IsBackground = true;
th.Start(); //线程开始干活
这样就舒服了
更加简洁的应该是这样:好几年了,都理不清这个是这样写的:
this.Invoke(new Action(() =>
{
textBox1.Text = str; //做事情
}));