我有一个承载 WCF 服务的 Winforms 应用程序。
在我的Connect
按钮单击事件中,连接正在打开BackgroundWorker
,以便我的 UI 响应,而此连接仍在进行中(1 - 2 秒),并且在BackgroundWorker_RunWorkerCompleted
事件发生后转到我的其他班级并做我的事情。
最近我Thread.Sleep
在调试时添加了一些,并注意到它不会冻结我的 UI,所以在我搜索后我发现这可能是因为BackgroundWorker
线程(我说得对吗?)
在我的应用程序中,我有一个表单类和另一个包含多个事件的类,表单类订阅这些事件并以这种方式更新我的 UI:
this.Invoke((MethodInvoker)delegate
{
// Update UI
});
所以我的问题是:以这种方式使用另一个线程并使用它可以this.Invoke
吗?
还是我需要以其他方式做到这一点?