我想做一系列动作,同时依赖它抛出的异常或不抛出任何异常更新我的 UI,我怎样才能实现这样的事情?
我已经尝试为每个步骤创建新线程,但它不会等到一个步骤结束并且它总是写入失败消息,使用 Thread.Join() 也没有帮助,因为它也阻塞了 UI 线程......
我想做一系列动作,同时依赖它抛出的异常或不抛出任何异常更新我的 UI,我怎样才能实现这样的事情?
我已经尝试为每个步骤创建新线程,但它不会等到一个步骤结束并且它总是写入失败消息,使用 Thread.Join() 也没有帮助,因为它也阻塞了 UI 线程......
你需要BackgroundWorker。将要在后台线程中执行的代码放入DoWork
处理程序中,将更新 UI 的代码放入RunWorkerCompleted
事件处理程序中。
如果您想在DoWork
处理程序之间更新 GUI,您可以像这样在 UI 调度程序上将其排队 -
App.Current.Dispatcher.BeginInvoke((Action)delegate
{
// Update GUI here.
}, null);