1

ディスパッチャを介してUI要素を更新しようとすると、オブジェクト参照がオブジェクトのインスタンスに設定されていないというエラーが発生します。

サンプルコードは->

backgroundworker.DoWork += >
{
// do some work here.

// close the progressbar over here

    _progressBar.Dispatcher.Invoke(DispatcherPriority.Normal, 
                                            new Action( _progressBar.Close);
}

_progressBar.Dispatcher.Invokeステートメントで設定されていないオブジェクト参照のエラーが発生し、アプリケーションが完全にハングします。

4

1 に答える 1

1

の値が_progressBarnullではないことを確認しますか?多分それはnull別の時点にあります。

次の行を追加して確認します。

new Action(() => {
                    if (_progressBar == null){
                        if (Debugger.IsAttached){
                            Debugger.Break();
                        } else {
                            Debug.Fail("_progressbar is null!");
                        }
                     } else {
                       _progressBar.Close();
                     }
                  });
于 2012-05-16T07:36:58.190 に答える