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

C# 对Windows窗体控件C的按钮线程安全调用#,c#,multithreading,winforms,button,windows-forms-designer,C#,Multithreading,Winforms,Button,Windows Forms Designer,我读过关于如何对Windows窗体控件进行线程安全调用的文章。。但我真的不明白如何把它应用到按钮上。就我而言,我有: button.Enabled = false; new Thread(() => { doSomeWork(); button.Enabled = true; }).Start(); 我想在线程结束时启用该按钮 您需要使用方法在UI线程中执行代码: button.Enabled = false;

我读过关于如何对Windows窗体控件进行线程安全调用的文章。。但我真的不明白如何把它应用到按钮上。就我而言,我有:

button.Enabled = false;
new Thread(() =>
{                   
    doSomeWork();
    button.Enabled = true;           
}).Start();
我想在线程结束时启用该按钮

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

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

我猜你没有完全阅读这个例子。您需要调用this.Invoke(…)以更改按钮.Enabled。我不知道如何在我的案例中应用,因为在示例中,他们委托了一个文本。。我没有在C#上使用线程的经验。你能告诉我如何在我的案例中应用它吗?