結構 SpinLock 是低階互斥同步處理基本類型,會在等候取得鎖定時旋轉。 在多核心計算機上,當等候時間預期很短,且爭用最少時, SpinLock 效能會優於其他類型的鎖定。 不過,我們建議您只在通過分析判斷SpinLock方法或System.Threading.Monitor方法顯著降低程式效能時,才使用Interlocked。
SpinLock 即使線程尚未取得鎖定,仍可能會產生線程的時間配量。 這樣做可避免執行緒優先權倒置,並讓垃圾收集器能順利運作。 當您使用 SpinLock時,請確保沒有任何線程能夠持有鎖的時間超過非常短暫的時間,並且線程在持有鎖時不能被阻塞。
因為 SpinLock 是實值型別,所以如果您希望兩個複本引用同一個鎖,則必須明確以參考方式傳遞它。
如需如何使用此類型的詳細資訊,請參閱 System.Threading.SpinLock。 如需範例,請參閱 如何:使用SpinLock進行 Low-Level 同步處理。
SpinLock 支援可在開發階段期間使用的 線程-追蹤 模式,以協助追蹤在特定時間保留鎖定的線程。 線程追蹤模式非常適用於偵錯,但建議您在程式的發行版中將其關閉,因為效能可能會變慢。 如需詳細資訊,請參閱 How to: Enable Thread-Tracking Mode in SpinLock。