SpinLock

SpinLock 結構是一個低階、互斥的同步處理基本類型,會在等候取得鎖定期間進行微調。 在多核心電腦上,預期等候時間很短且競爭最少時,SpinLock 可以優於其他類型鎖定的方式執行。 不過,我們建議您只有在藉由分析 System.Threading.Monitor 方法進行判斷時,或 Interlocked 方法大幅減慢程式的效能,才使用 SpinLock

即使 SpinLock 尚未取得鎖定,還是可能會讓出執行緒的時間配量。 它會執行此作業來避免執行緒優先順序反轉,並使記憶體回收行程繼續有進展。 當您使用 SpinLock 時,確保沒有任何執行緒可以保留鎖定超過一個非常短暫的時間範圍,而且沒有執行緒可以在保留鎖定時加以封鎖。

由於 SpinLock 是一個實值類型,因此,如果您想要讓兩個複本參考同一個鎖定,就必須明確地以傳址方式傳遞它。

如需如何使用此類型的詳細資訊,請參閱 System.Threading.SpinLock。 如需範例,請參閱如何:使用 SpinLock 進行低階同步處理

SpinLock 支援「執行緒-」模式,讓您可以在開發階段使用,以協助追蹤在特定時間保留鎖定的執行緒。 執行緒追蹤模式非常適用於偵錯,但我們建議您在程式的發行版本中關閉此模式,因為它可能會降低效能。 如需詳細資訊,請參閱如何:啟用 SpinLock 中的執行緒追蹤模式

另請參閱