对 Windows 窗体控件 C# 的按钮线程安全调用

Button Thread-Safe Calls to Windows Forms Controls C#

我读过 this topic 关于如何对 Windows 表单控件进行线程安全调用的内容。但我真的不明白如何将它应用于按钮。就我而言,我有:

button.Enabled = false;
new Thread(() =>
{                   
    doSomeWork();
    button.Enabled = true;           
}).Start();

我想在线程结束时启用按钮。

您需要使用 Invoke 方法才能在 UI 线程中执行代码:

button.Enabled = false;
new Thread(() =>
{                   
   doSomeWork();
   this.Invoke((MethodInvoker) delegate {
         button.Enabled = true;
   });
}).Start();