通过引用从后台线程更新TreeView节点

时间:2011-12-21 16:22:33

标签: c# multithreading backgroundworker

我有一个包含许多节点的TreeView。我有一个后台工作程序,它遍历节点并添加节点或更新Checked属性。如果我将节点作为参考传递给后台线程(我使用SyncronizationContext类来更新在主线程上创建的控件),是否可以从我的后台线程更新节点?只是好奇我是否可以,因为如果我可以/不能从我的后台线程中进行编程更改,那就太多了。

1 个答案:

答案 0 :(得分:1)

您无法更新UI线程之外的控件。但是您可以使用Application.Current.Dispatcher.Invoke(对于WPF)或Control.Invoke(对于WinForms)在UI线程上调用某些函数。您应该记住,这些操作将在主线程上执行,并且如果您尝试在此处执行某些操作,可能会使您的应用程序无响应