调用线程无法访问此对象,因为另一个线程拥有它

use*_*631 5 wpf user-interface multithreading

我在主线程中有一个WPF窗口.在这个窗口的按钮时钟我正在加载数据.同时我使用单独的线程来显示等待屏幕.但我无法将主窗口设置为等待屏幕的父级.它抛出以下错误:调用线程无法访问此对象,因为另一个线程拥有它

Dar*_*mas 7

你想看看这个Dispatcher.Invoke方法.


Phi*_*Gan 5

您可以使用BackgroundWorker该类来执行异步操作; 它应该处理您可能遇到的任何线程关联问题.它可以像连接几个事件一样简单.

应该让你开始.

或者,您可以使用Dispatcher.Invoke在正确的线程上执行操作:

private void DoStuffOnThread()
{
    Dispatcher.Invoke(new Action(DoStuffOnUIThread));
}

private void DoStuffOnUIThread()
{
    // ...
}
Run Code Online (Sandbox Code Playgroud)