您的位置:首页 > 其它

如何在多线程中调用winform窗体控件(续)

2013-03-15 10:54 288 查看
[align=center]如何在多线程中调用winform窗体控件(续) [/align] 之前《在如何在多线程中调用winform窗体控件》文章中,有关多线程调用的一段代码:
private Thread myThread;
private void Form1_Load(object sender, EventArgs e)
{
myThread = new Thread(new ThreadStart(RunsOnWorkerThread));
myThread.Start();
}

private void RunsOnWorkerThread()
{
MethodInvoker mi = new MethodInvoker(SetControlsProp);
BeginInvoke(mi);
}

private void SetControlsProp()
{
label1.Text = "myThread线程调用UI控件";
}
当时使用的声明委托的方式,后来自己看着实在觉得不爽,代码太复杂了,下面对这段代码优化了一下,在Load事件中的代码如下:
private void Form1_Load(object sender, EventArgs e)
{
Thread thread = new Thread(new ThreadStart(
() =>
{
this.BeginInvoke(new EventHandler(
(object o, System.EventArgs e1) => { textBox1.Text = "内容已设置"; }));
}));
thread.Start();
}
使用匿名委托的形势后主要是减少了代码的理解难度,也方便维护。 本文出自 “张隽永” 博客,谢绝转载!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: