Invoke
上
Form
ISynchronizeInvoke
接口:
public class MyForm : Form
{
...
private void Button_Click(object sender, EventArgs e)
{
SomeExcelWorkbook.OnBeforeClose += delegate(ref bool Cancel)
{
this.Invoke(someCode);
};
}
}
public void CodeExecutedByUIThread()
{
ISynchronizeInvoke sync;
SomeExcelWorkbook.OnBeforeClose += delegate(ref bool Cancel)
{
sync.Invoke(someCode);
};
}
进入时
CodeExecutedByUIThread
,我们仍然在UI线程中,所以理论上所有需要的东西都应该在那里。不幸的是
Form is the only class implementing that interface
,是吗?
我怎样才能拿到一张支票
显然
Thread.CurrentThread
不提供它。。。
SynchronizationContext
? 我该如何检索和使用它?
更新:
哦,我明白了,获取SynchronizationContext对象看起来很简单
SynchronizationContext.Current
,它不需要任何对窗体的引用。所以我会在谷歌上搜索更多关于如何使用它的信息。