Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die SpinLock-Struktur ist eine Synchronisierungsprimitive auf niedriger Ebene mit gegenseitigem Ausschluss, die die Schleife durchläuft, während sie darauf wartet, eine Sperre abzurufen. Wenn Wartezeiten auf Mehrkerncomputern kurz und Konflikte minimal sein sollen, bietet SpinLock einen Leistungsvorteil gegenüber anderen Arten von Sperren. Es wird jedoch empfohlen, nur dann zu verwenden SpinLock , wenn Sie durch Profilerstellung feststellen, dass die System.Threading.Monitor Methode oder die Interlocked Methoden die Leistung Ihres Programms erheblich verlangsamen.
SpinLock könnte das Zeitsegment des Threads selbst dann erzeugen, wenn die Sperre noch nicht abgerufen wurde. Dies soll eine Umkehrung der Threadpriorität vermeiden und den Fortschritt des Garbage Collectors aktivieren. Stellen Sie bei Verwendung eines SpinLock sicher, dass kein Thread die Sperre für mehr als eine sehr kurze Zeitspanne halten kann und dass kein Thread blockiert, während er die Sperre hält.
Da SpinLock ein Werttyp ist, müssen Sie ihn explizit per Verweis übergeben, wenn die beiden Kopien auf dieselbe Sperre verweisen sollen.
Weitere Informationen zur Verwendung dieses Typs finden Sie unter System.Threading.SpinLock. Ein Beispiel finden Sie unter How to: Use SpinLock for Low-Level Synchronization.
SpinLockunterstützt einenThreadverfolgungsmodus-, den Sie während der Entwicklungsphase verwenden können, um den Thread nachzuverfolgen, der die Sperre zu einem bestimmten Zeitpunkt hält. Der Threadverfolgungsmodus ist für das Debuggen sehr nützlich. Es wird jedoch empfohlen, ihn in der Releaseversion Ihres Programms zu deaktivieren, da die Leistung möglicherweise verlangsamt wird. Weitere Informationen finden Sie unter How to: Enable Thread-Tracking Mode in SpinLock.