В приложении 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);
Теперь, когда основной класс пытается получить доступ к FooProperty с помощью метода получения, я получаю исключение InvalidOperationException: вызывающий поток не может получить доступ к этому объекту, поскольку он принадлежит другому потоку.
Если поток создания объекта закончен, почему он все еще владеет объектом? Есть ли где-нибудь вокруг этого?