执行一系列操作而不阻止UI线程

时间:2013-01-27 08:35:26

标签: c# wpf multithreading

我想做一系列操作并同时依赖它抛出的异常或不抛出任何异常更新我的UI,我怎样才能实现这样的事情?

我已经尝试为每个步骤创建新线程,但它不会等到其中一个步骤结束并且总是写入失败消息,使用Thread.Join()也没有帮助,因为它也阻止了UI线程。 ..

1 个答案:

答案 0 :(得分:2)

您需要BackgroundWorker。将要执行的代码放在DoWork处理程序中的后台线程中,并在RunWorkerCompleted事件处理程序中更新UI代码。

如果你想在DoWork处理程序之间更新GUI,你可以像这样在UI调度程序上排队 -

App.Current.Dispatcher.BeginInvoke((Action)delegate
        {
           // Update GUI here.
        }, null);