如何在后台线程中访问TreeViewItem的Tag属性?

时间:2017-10-09 12:31:38

标签: c# wpf multithreading treeview treeviewitem

我在wpf窗口中有一个树视图。对于树视图中的每个树视图项,我将相关对象存储在其Tag属性中。我正在树视图上实现搜索功能。我在不同的线程中运行搜索,以便不阻止UI。并且在搜索操作期间,我搜索存储在树视图项的标记属性中的对象中的信息。但问题是标签属性不能在不同的线程中访问。我不想使用树视图的调度程序来访问标记属性,因为程序将在每个标记访问的UI线程和后台线程之间切换。那么在后台运行搜索就没有意义了。我该怎么办?

1 个答案:

答案 0 :(得分:1)

  

我该怎么办?

无法从任何其他线程访问Tag TreeViewItem的{​​{1}}属性,而不是最初创建的线程,即UI /调度程序线程。< / p>

因此,您必须使用调度程序将访问该属性的代码编组回UI线程,在UI线程上运行所有代码,或使用不使用{{1用于存储相关对象信息的属性。

这是你恐怕唯一的选择。