1

我有一个承载 WCF 服务的 Winforms 应用程序。

在我的Connect按钮单击事件中,连接正在打开BackgroundWorker,以便我的 UI 响应,而此连接仍在进行中(1 - 2 秒),并且在BackgroundWorker_RunWorkerCompleted事件发生后转到我的其他班级并做我的事情。

最近我Thread.Sleep在调试时添加了一些,并注意到它不会冻结我的 UI,所以在我搜索后我发现这可能是因为BackgroundWorker线程(我说得对吗?)

在我的应用程序中,我有一个表单类和另一个包含多个事件的类,表单类订阅这些事件并以这种方式更新我的 UI:

        this.Invoke((MethodInvoker)delegate
        {
            // Update UI
        });

所以我的问题是:以这种方式使用另一个线程并使用它可以this.Invoke吗?

还是我需要以其他方式做到这一点?

4

1 回答 1

2

是的,这没关系,它是在异步出现之前发明后台工作人员的。

我建议使用异步

于 2013-10-17T03:31:01.507 回答