Aracılığıyla paylaş


SpinLock

Düşük seviyeli, karşılıklı dışlama senkronizasyon ilkesi olan SpinLock yapısı, kilidi elde edene kadar dönerek bekler. Çok çekirdekli bilgisayarlarda, bekleme sürelerinin kısa olması beklendiğinde ve çekişme çok az olduğunda, SpinLock diğer kilit türlerinden daha iyi performans sergileyebilir. Ancak, SpinLock kullanmanızı yalnızca profil oluşturma yoluyla System.Threading.Monitor veya Interlocked yöntemlerinin programınızın performansını önemli ölçüde yavaşlattığını belirlediğinizde öneririz.

SpinLock henüz kilidi almamış olsa bile iş parçacığının zaman dilimini verebilir. Bunu iş parçacığı öncelik ters çevirmesini önlemek ve çöp toplayıcının ilerlemesini sağlamak için yapar. SpinLock kullandığınızda, kilidi çok kısa bir süre boyunca tutabilen hiçbir iş parçacığı olmadığından ve kilidi tutarken hiçbir iş parçacığının engellenmediğinden emin olun.

SpinLock bir değer türü olduğundan, iki kopyanın aynı kilide başvurmasını istiyorsanız bunu açıkça referans olarak geçirmeniz gerekir.

Bu türü kullanma hakkında daha fazla bilgi için bkz System.Threading.SpinLock. . Bir örnek için bkz. Nasıl yapılır: SpinLock'u Low-Level Eşitlemesi için kullanma.

SpinLock, geliştirme aşamasında kilidi belirli bir zamanda tutan iş parçacığını izlemeye yardımcı olmak için kullanabileceğiniz bir - modunu destekler. İş parçacığı izleme modu hata ayıklama için çok yararlıdır, ancak performansı yavaşlatabileceğinden programınızın yayın sürümünde kapatmanızı öneririz. Daha fazla bilgi için bkz . Nasıl yapılır: SpinLock'ta Thread-Tracking Modunu Etkinleştirme.

Ayrıca bakınız