Thread.SpinWait(Int32) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Veranlasst, dass ein Thread so oft wartet, wie vom iterations
-Parameter definiert.
public:
static void SpinWait(int iterations);
public static void SpinWait (int iterations);
static member SpinWait : int -> unit
Public Shared Sub SpinWait (iterations As Integer)
Parameter
- iterations
- Int32
Eine 32-Bit-Ganzzahl mit Vorzeichen, die den Zeitraum definiert, den ein Thread warten soll.
Hinweise
Die SpinWait -Methode ist nützlich für die Implementierung von Sperren. Klassen im .NET Framework, zMonitor. B. und ReaderWriterLock, verwenden diese Methode intern.
SpinWait Im Wesentlichen wird der Prozessor in eine sehr enge Schleife versetzt, wobei die Schleifenanzahl durch den iterations
Parameter angegeben wird. Die Dauer der Wartezeit hängt daher von der Geschwindigkeit des Prozessors ab.
Vergleichen Sie dies mit der Sleep -Methode. Ein Thread, der aufruft Sleep , ergibt den Rest des aktuellen Slices der Prozessorzeit, auch wenn das angegebene Intervall 0 ist. Wenn Sie ein Intervall ungleich 0 für angeben Sleep , wird der Thread von der Berücksichtigung durch den Threadplaner entfernt, bis das Zeitintervall abgelaufen ist.
SpinWait ist für gewöhnliche Anwendungen nicht allgemein nützlich. In den meisten Fällen sollten Sie die vom .NET Framework bereitgestellten Synchronisierungsklassen Monitor.Enter verwenden, z. B. aufruf Monitor.Enter oder eine Anweisung, die umschließt (lock
in C# oder SyncLock
in Visual Basic).
Achtung
In dem seltenen Fall, in dem es vorteilhaft ist, einen Kontextwechsel zu vermeiden, z. B. wenn Sie wissen, dass eine Zustandsänderung unmittelbar bevorsteht, rufen Sie die SpinWait -Methode in Ihrer Schleife auf. Der Code SpinWait wird ausgeführt, um Probleme zu verhindern, die auf Computern mit mehreren Prozessoren auftreten können. Auf Computern mit mehreren Intel-Prozessoren, die Hyper-Threading Technologie verwenden, SpinWait verhindert beispielsweise in bestimmten Situationen Prozessormangel.