Dot-Net
當 Interlocked 類可用時,為什麼在 .NET 中使用 SyncLocks 進行簡單操作?
我在 VB.NET 中做簡單的多執行緒已經有一段時間了,並且剛剛進入我的第一個大型多執行緒項目。我一直使用該
Synclock語句完成所有操作,因為我認為沒有更好的方法。我剛剛了解了這個
Interlocked類 - 它使它看起來好像這一切:Private SomeInt as Integer Private SomeInt_LockObject as New Object Public Sub IntrementSomeInt Synclock SomeInt_LockObject SomeInt += 1 End Synclock End Sub可以用單個語句替換:
Interlocked.Increment(SomeInt)這會在內部處理所有鎖定並修改數字。這比為簡單操作編寫自己的鎖要簡單得多(執行時間更長或更複雜的操作顯然仍然需要自己的鎖)。
當我可以使用這些方法完成相同的事情時,我是否有理由使用專用鎖定對象滾動自己的鎖定
Interlocked?
你是對的;
Interlocked應該在這裡使用,並且會比SyncLock.但是,這個
Interlocked類並不為人所知。但是,在某些情況下您需要使用
SyncLock並且Interlocked無濟於事。
這是因為沒有人知道它。傳播這個詞!