如何在后台线程中访问 TreeViewItem 的 Tag 属性?
How can I access Tag property of TreeViewItem in a background thread?
我在 wpf 中有一个树视图 window。对于树视图中的每个树视图项目,我将相关对象存储在其标签中 property.I 正在树视图上实现搜索功能。我 运行 在不同的线程中搜索,以免阻塞 UI。在搜索操作期间,我搜索存储在树视图项的标签 属性 中的对象中的信息。但问题是标签 属性 无法在不同的线程中访问。我不想使用树视图的调度程序来访问标签 属性,因为程序将在每个标签访问时在 UI 线程和后台线程之间切换。那么 运行 在后台进行搜索就没有意义了。我能做什么?
What can I do?
您不能从最初创建它的线程以外的任何其他线程访问TreeViewItem
的Tag
属性,那是 UI/dispatcher 线程。
因此您将不得不使用调度程序将访问 属性 的代码编组回 UI 线程,运行 UI 上的所有代码线程,或使用不使用 Tag
属性 的不同方法来存储有关相关对象的信息。
恐怕这些是你唯一的选择。
我在 wpf 中有一个树视图 window。对于树视图中的每个树视图项目,我将相关对象存储在其标签中 property.I 正在树视图上实现搜索功能。我 运行 在不同的线程中搜索,以免阻塞 UI。在搜索操作期间,我搜索存储在树视图项的标签 属性 中的对象中的信息。但问题是标签 属性 无法在不同的线程中访问。我不想使用树视图的调度程序来访问标签 属性,因为程序将在每个标签访问时在 UI 线程和后台线程之间切换。那么 运行 在后台进行搜索就没有意义了。我能做什么?
What can I do?
您不能从最初创建它的线程以外的任何其他线程访问TreeViewItem
的Tag
属性,那是 UI/dispatcher 线程。
因此您将不得不使用调度程序将访问 属性 的代码编组回 UI 线程,运行 UI 上的所有代码线程,或使用不使用 Tag
属性 的不同方法来存储有关相关对象的信息。
恐怕这些是你唯一的选择。