2

在 Windows 客户端编程方面,我是一个新手。我有一个后台工作人员,它有一个 DoWork 事件和一个 RunCompleted 事件。如果在 DoWork 中抛出异常,我想对我的 UI 进行更改,但是我不能,因为它在不同的线程中。我可以将错误传达给 RunCompleted,但这也无济于事。

4

1 回答 1

4

调用 Dispatcher.BeginInvoke。基本上,你想要这样的代码:

void UpdateState(WhatEverType someObject)
{
    if (! Dispatcher.CheckAccess())
    {
        Dispatcher.BeginInvoke(DispatcherPriority.Normal, new Action(()=>UpdateState(someObject));
    }
    else
    {
        //make the UI changes here.
    }
}
于 2009-02-10T15:21:13.993 回答