说明
界面操作的代码应该写在界面(Form/Dialog)里
方法定义
private void Method1(string s)
{
......
}
delegate定义
private delegate void Method1Delegate(string s);
界面调用代码
private void op(){
string sText="hello";
if (this.InvokeRequired)
{
Method1Delegate dele = new Method1Delegate(Method1);
this.Invoke(dele, sText);
}
else
{
this.Method1(sText);
}
}
用Action更新界面更简单
await Task.Run(() =>
{
//采用委托的方式设置buttonStart.Enabled = true,允许再次点击该按键
if (buttonStart.InvokeRequired)
{
Invoke(new Action(() => { buttonStart.Enabled = true; }));
}
else
{
buttonStart.Enabled = true;
}
}