";调用线程不能访问这个对象,因为不同的线程拥有它“;C#WPF应用程序中的错误
本文关键字:线程 拥有 应用程序 错误 C#WPF 不能 调用 quot 访问 对象 因为 | 更新日期: 2023-09-27 18:25:55
我正在制作一个下载应用程序。在我的项目中有名为main.xaml.cs和downloader.cs的主窗口和下载程序类。
主窗口中有一个自定义ListBox。我正试图刷新Downloader.cs中的Listbox项,但应用程序给出了"调用线程无法访问此对象,因为另一个线程拥有";错误
下载程序.cs:
namespace MyDownloaderApp
{
class Downloader
{
/*
...
*/
private void doWork()
{
((MainWindow)System.Windows.Application.Current.MainWindow).myListBox.Items.Refresh();
}
}
}
我得到以下错误:
An exception of type 'System.InvalidOperationException' occurred in WindowsBase.dll but was not handled in user code: "The calling thread cannot access this object because a different thread owns it."
是什么导致了这个错误,我该如何修复它?
您应该使用:
this.Dispatcher.Invoke((Action)(() =>
{
...// your code refresh listbox Items
}));
请查看:调用线程无法访问此对象,因为另一个线程拥有它