0
A
回答
4
从MSDN documentation on System.Windows.Forms.TreeView:
任何公共静态(共享在Visual 基本)此类型的成员都是线程安全的 。任何实例成员不是 保证是线程安全的。
幸运的是,没有在Windows窗体的机制来处理一个线程安全的方式从多个线程控制:
public delegate void TreeActionDelegate(WhatToDo details);
public void DoSomethingWithThisTree(WhatToDo details)
{
// Assuming that 'this' points to a TreeView
if (this.InvokeRequired) this.Invoke(new TreeActionDelegate(),
new object[] { details });
else
{
// The body of your function
}
}
现在你可以从任何线程调用这个函数:
DoSomethingWithThisTree(new WhatToDo("something"));
这将保证操作树的代码将在创建TreeView的线程中执行,因此它将是线程安全的。如果你不想从TreeView继承,你可以使用treeInstance.InvokeRequired
和treeInstance.Invoke(
)。
0
谢谢...
行“//你的函数的主体”给了我一个踢开始。
我已经与百达刚通过这种方法传递一些信息,以GUI对象approched这个...我从来没有想过给函数的整个身体放在那里
感谢
布拉德
相关问题
- 1. Ruby || =操作员线程安全
- 2. C#线程安全
- 3. 如何使C++ endl操作器线程安全?
- 4. 线程安全问题:跨线程操作无效
- 5. 多线程和锁定(线程安全的操作)
- 6. 制作C库线程安全
- 7. 线程安全的C#不工作
- 8. C++多线程 - 线程安全代码
- 9. C#+ =线程安全吗?
- 10. C++线程安全和notify_all()
- 11. C++线程安全整数
- 12. C#变量线程安全
- 13. C++线程安全映射
- 14. C中的线程安全?
- 15. C++线程安全摘要
- 16. C#:线程安全事件
- 17. 是C#Font.Height线程安全
- 18. C++线程安全vector.erase
- 19. java线程安全:线程安全吗?
- 20. 制作类线程安全
- 21. 线程安全流和流操纵器
- 22. testng侦听程序线程安全的文件操作
- 23. C#中的线程操作
- 24. Tiff操作多线程C#
- 25. 确保安全的SQLite数据库操作(不是指线程安全的)
- 26. C/C++ tmpnam的线程安全性?
- 27. 线程安全
- 28. 线程安全
- 29. 线程安全
- 30. 线程安全
是这种方法的美妙之处在于函数会自行调用,就像在另一个线程中一样,如果你最初从同一个线程调用它,它根本不会执行任何调用。不幸的是,这不是我想出来的,这个方法实际上是在MSDN Library的某处提供的:) – 2009-01-14 01:31:32