gpt4 book ai didi

wpf - 来自已完成线程的对象上的 InvalidOperationException

转载 作者:行者123 更新时间:2023-12-03 12:53:25 25 4
gpt4 key购买 nike

在 WPF 应用程序中,我有一个 BackgroundWorker 线程创建一个对象。我们称对象为 foo。

后台 worker 代码:

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:调用线程无法访问此对象,因为另一个线程拥有它。

如果创建对象的线程已经完成,为什么它仍然拥有该对象?有什么办法吗?

最佳答案

您在给定线程中创建的对象归该线程所有。这就是您收到 InvalidOperationException 的原因。如果您想在后台线程中设置属性,我建议让委托(delegate)返回所需的值并从主线程调用 SetValue。 (创建对象的线程)。

关于wpf - 来自已完成线程的对象上的 InvalidOperationException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1651212/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com