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 に答える