您应该能够执行以下操作:
if (control.InvokeRequired)
{
control.Invoke(delegateWithMyCode);
}
else
{
delegateWithMyCode();
}
Run Code Online (Sandbox Code Playgroud)
InvokeRequired 是 Controls 上的一个属性,用于查看您是否在正确的线程上,然后 Invoke 将在正确的线程上调用委托。
更新:实际上,在我的上一份工作中,我们做了这样的事情:
private void SomeEventHandler(Object someParam)
{
if (this.InvokeRequired)
{
this.Invoke(new SomeEventHandlerDelegate(SomeEventHandler), someParam);
}
// Regular handling code
}
Run Code Online (Sandbox Code Playgroud)
这消除了对 else 块的需要,并收紧了代码。
| 归档时间: |
|
| 查看次数: |
3782 次 |
| 最近记录: |