2010-03-08 277 views
3

在多線程應用程序中。我有一堆循環訪問信息的函數。我也有一堆修改同一個集合的函數。隔離讀取和寫入多線程

我正在尋找一種方法來隔離所有的讀取和寫在一起。在讀取過程中,我不想寫入。我正在考慮在集合對象上使用SyncLock,但這會阻止多個讀取嘗試並行工作。

回答

3

您考慮過ReaderWriterLockSlim嗎?不過你可能想要check that using it is faster than a simple Monitor lock。不要考慮較舊的ReaderWriterLock。這裏是傑弗裏裏希特不得不說的是:

在Microsoft®.NET框架類 庫包括在的System.Threading 命名空間,可以讓你獲得 多讀/單寫一個ReaderWriterLock 類 語義。儘管存在這樣的 類很不錯,但有 實現有幾個問題,我建議你不要使用 。