【发布时间】:2011-05-17 11:54:09
【问题描述】:
我试图在 C# 中处理线程,但我遇到了一个奇怪的异常,我不知道如何解决。我有一个由 BackgroundWorker 运行的方法,其中有这段代码:
GridView gridView;
DataView dataView;
queryTable.GetViewAndDataView(out gridView, out dataView);
this.listView.Dispatcher.Invoke(DispatcherPriority.Normal, new Action(
delegate() {
listViewView = gridView;
listView.ItemsSource = dataView;
}
));
GetViewAndDataView 填充一个gridView 和一个dataView,而委托代码设置当前的listView。 Invoke 的使用应该不会引发异常,但是当我尝试运行它时,我会得到:调用线程无法访问此对象,因为另一个线程拥有它。
任何人都知道如何处理此类异常,或者至少,如何禁用线程对象拥有?
【问题讨论】:
-
GridView 和 DataView 到底是什么?是否/有 GridView 控件?
-
是 GridView 和 DataView UI 组件,还是你自己的类?
-
是的,GridView 看起来是一个 UI 组件
标签: c# .net visual-studio multithreading thread-safety