使用Interlocked替代lock語法
在Web程式中,如果同時有多個request要去修改一個共用變數,通常會有資料混亂的問題,而在List或Dictionary中,.NET提供了ConcurrentDictionary這類可以確保Thread-Safety的類別,但如果今天是Int變數呢?我想宣告一個變數用來記錄影片觀看次數該怎麼做呢?
好在.NET有提供一個方式,寫法如下:
int count = 0;
Interlocked.Increment(ref count);
這樣的做法就可以省去lock語法,且確保資料不會混亂。
參考資料