从另一个线程更新标签的最简单方法是什么
-
我有一个
表单在thread1上运行,从中我开始了另一个线程(thread2) -
当
thread2正在处理一些文件时,我想用thread2的当前工作状态更新表单上的标签
我怎么能这么做
最简单的方法是将匿名方法传递到标签中。调用:
//在工作线程上运行
字符串newText=“abc”;
form.Label.Invoke((MethodInvoker)委托{
//在UI线程上运行
form.Label.Text=newText;
});
//回到工作线程上
请注意,Invoke会阻止执行,直到它完成为止——这是同步代码。这个问题并没有问异步代码,但是当您想了解异步代码时,在堆栈溢出中有很多关于编写异步代码的内容