对 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();
我读过 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();