我有一些 UI 代码需要从我的后台演示者线程中更新。所以,我做了以下事情:从我的后台线程,我在 UI 中设置我的属性:
_ui.ConnectionStatus = "A";
那么,我的设置如下:
public string ConnectionStatus
{
set
{
if (Dispatcher.CheckAccess())
ConnectionStatusTxt.Content = value;
else
{
Dispatcher.Invoke(DispatcherPriority.Normal, (Action)(() =>
{ConnectionStatusTxt.Content = value;}));
}
}
}
我收到以下错误:
The calling thread cannot access this object because a different thread owns it.
我的理解是Dispatcher
负责调用不同的线程,所以这个错误让我有点困惑。谢谢!