gpt4 book ai didi

c# - 在线程之间移动 DependencyObject

转载 作者:行者123 更新时间:2023-11-30 15:41:52 24 4
gpt4 key购买 nike

我在 WPF 应用程序的单独线程中执行冗长的操作(连接测试、远程数据库表验证等)。在测试期间,我为用户收集关于哪些测试通过了哪些没有通过的信息。信息存储为 List<T>我自己设计的对象:

public class StatusItem : DependencyObject
{
public string Text { get... set... }
public Status Status { get... set... }
public string Details { get... set... }
}

所有这些属性都是其对应的 DependencyProperty 的前台.操作完成后(在单独的线程中),我设置收集的信息,status , 到我的私有(private)领域 Window .我得到一个:

InvalidOperationException:
The calling thread cannot access this object because a different thread owns it.

有没有办法让我转status (a List<StatusItem> ) 从 TestThread 到我的主线程,而不必求助于委托(delegate)和 Dispatcher调用?

PS:我可以做到Invoke ,但我宁愿避免必须创建一个 CopyStatusItemsDelegate代表。

最佳答案

我认为没有好的解决方案。上述情况是我不从 DependencyObject 派生 Item-ViewModels 而是实现 INotifiyPropertyChanged 的原因。

关于c# - 在线程之间移动 DependencyObject,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7952513/

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