今天我不得不修复一些使用线程的较老的VB.NET 1.0代码。问题是从工作线程而不是UI线程更新UI元素。我花了一些时间才发现可以使用InvokeRequired的断言来查找问题。如何在.NET中编写安全/正确的多线程代码?
除了上面提到的并发修改问题之外,还有可能遇到的死锁,竞态条件等。 由于调试/修复线程问题是一种痛苦,我想知道如何才能减少这方面的编码错误/错误,以及如何更容易地找到它们中的任何一个。那么,我要问的是:
- 有什么好看的图案编写多线程代码时要遵循?什么是Dos和不该做的事?
- 你用什么技术来调试线程问题?
请在适用和可能的情况下提供一些示例代码。答案应该与.NET框架(任何版本)相关。
“但不忘记代码进入某种量子状态“ - *叹*我很清楚这个问题。 – 2009-01-29 21:02:27