今天我不得不修復一些使用線程的較老的VB.NET 1.0代碼。問題是從工作線程而不是UI線程更新UI元素。我花了一些時間才發現可以使用InvokeRequired的斷言來查找問題。如何在.NET中編寫安全/正確的多線程代碼?
除了上面提到的併發修改問題之外,還有可能遇到的死鎖,競態條件等。 由於調試/修復線程問題是一種痛苦,我想知道如何才能減少這方面的編碼錯誤/錯誤,以及如何更容易地找到它們中的任何一個。那麼,我要問的是:
- 有什麼好看的圖案編寫多線程代碼時要遵循?什麼是Dos和不該做的事?
- 你用什麼技術來調試線程問題?
請在適用和可能的情況下提供一些示例代碼。答案應該與.NET框架(任何版本)相關。
「但不忘記代碼進入某種量子狀態「 - *嘆*我很清楚這個問題。 – 2009-01-29 21:02:27