在 WPF 应用程序中,我有一个 BackgroundWorker 线程创建一个对象。我们称对象为 foo。
后台工作者代码:
SomeClass foo = new SomeClass();
// Do some operation on foo
// Set some dependency property on the main class to foo
this.Dispatcher.BeginInvoke(DispatcherPriority.Normal,
(SendOrPostCallback)delegate { SetValue(FooProperty, foo); },
foo);
现在,当主类尝试使用 getter 访问 FooProperty 时,我得到一个 InvalidOperationException:调用线程无法访问此对象,因为另一个线程拥有它。
如果创建对象的线程已经完成,为什么它仍然拥有该对象?有什么办法吗?