我需要編寫一個保存爲Dictionary的類。該字典將被多個線程訪問。 每次訪問都會很短。關於鎖定策略的問題(C#/ .NET 3.5 SP1)
我想到:
- 每一分鐘,增加或刪除條目
- 每2秒的訪問。我需要創建該字典的副本。運行對它的檢查(然後例如調用DB)
- 每秒多次我將一個字段的值更新爲其中一個鍵。 (值是一個結構體)同一個鍵不會被同時訪問。
您會選擇哪種鎖定策略?爲什麼? 我的第一槍是使用ReaderWriterLockSlim。但是當我讀到它至少比Monitor慢兩倍時,我就不再那麼肯定了,因爲每次訪問字典時,我都會鎖定很短的時間。
TIA 馬丁
.NET 4.0具有線程安全的ConcurrentDictionary類。 – Bas