C# 在不阻塞UI线程的情况下执行一系列操作
我想做一系列的动作,同时依靠它抛出或不抛出任何异常来更新我的UI,我怎么能实现这样的事情呢 我已经尝试为每个步骤创建新线程,但它不会等到其中一个步骤结束,并且总是使用thread.Join()写入失败消息,这也没有帮助,因为它也会阻止UI线程…您需要的。将要在后台线程中执行的代码放入C# 在不阻塞UI线程的情况下执行一系列操作,c#,wpf,multithreading,C#,Wpf,Multithreading,我想做一系列的动作,同时依靠它抛出或不抛出任何异常来更新我的UI,我怎么能实现这样的事情呢 我已经尝试为每个步骤创建新线程,但它不会等到其中一个步骤结束,并且总是使用thread.Join()写入失败消息,这也没有帮助,因为它也会阻止UI线程…您需要的。将要在后台线程中执行的代码放入DoWork处理程序,并将更新UI的代码放入RunWorkerCompleted事件处理程序 如果您想从DoWorkhandler更新GUI,您可以像这样在UI调度程序上对其进行排队- App.Current.Dis
DoWork
处理程序,并将更新UI的代码放入RunWorkerCompleted
事件处理程序
如果您想从DoWork
handler更新GUI,您可以像这样在UI调度程序上对其进行排队-
App.Current.Dispatcher.BeginInvoke((Action)delegate
{
// Update GUI here.
}, null);
您使用的是哪个.Net版本?此答案在NET4.0之前是正确的。从NET4.5开始,您可以使用异步等待模式。可以在以下位置找到描述它的文档: