1

当我尝试通过调度程序更新 UI 元素时,我收到一个错误,指出对象引用未设置为对象的实例。

示例代码是 ->

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

// close the progressbar over here

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

我收到一个错误 Object reference not set in the _progressBar.Dispatcher.Invoke 语句,我的应用程序完全挂起。

4

1 回答 1

1

你确定的价值_progressBar不为空吗?也许是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 回答