我已阅读this topic有关如何对Windows窗体控件进行线程安全调用的问题。但我并不真正了解如何将其应用于按钮。就我而言,我有:
button.Enabled = false;
new Thread(() =>
{
doSomeWork();
button.Enabled = true;
}).Start();
我想在线程结束时启用按钮。
答案 0 :(得分:3)
您需要使用Invoke方法才能在UI线程中执行代码:
button.Enabled = false;
new Thread(() =>
{
doSomeWork();
this.Invoke((MethodInvoker) delegate {
button.Enabled = true;
});
}).Start();