Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

Thread.SpinWait-Methode: (Int32)

 

Veröffentlicht: Oktober 2016

Veranlasst, dass ein Thread so oft wartet, wie vom iterations-Parameter definiert.

Namespace:   System.Threading
Assembly:  mscorlib (in mscorlib.dll)

[HostProtectionAttribute(SecurityAction.LinkDemand, Synchronization = true, 
	ExternalThreading = true)]
public static void SpinWait(
	int iterations
)

Parameter

iterations
Type: System.Int32

Eine 32-Bit-Ganzzahl mit Vorzeichen, die den Zeitraum definiert, den ein Thread warten soll.

Die SpinWait Methode eignet sich zum Implementieren von Sperren. Klassen in .NET Framework, z. B. Monitor und ReaderWriterLock, verwenden diese Methode intern. SpinWait setzt im Wesentlichen den Prozessor in sehr kurze Schleifen durchlaufen, wobei die Schleifenanzahl vom angegebenen der iterations Parameter. Die Länge der Wartezeit hängt daher von der Geschwindigkeit des Prozessors.

Vergleichen Sie dies mit der Sleep Methode. Ein Thread, der Aufrufe Sleep den Rest des aktuellen Zeitanteils ergibt, selbst wenn das angegebene Intervall 0 (null) ist. Angeben eines Intervalls ungleich NULL für Sleep wird von der Thread von der Threadplanung, bis das Zeitintervall abgelaufen ist.

SpinWait ist nicht für normale Anwendungsprogramme im Allgemeinen sinnvoll. In den meisten Fällen sollten Sie die von .NET Framework bereitgestellten Synchronisierungsklassen verwenden. Rufen Sie z. B. Monitor.Enter oder eine Anweisung, die umschließt Monitor.Enter (lock in c# oder SyncLock in Visual Basic).

System_CAPS_cautionAchtung

Stellen Sie in den seltenen Fällen, in denen es vorteilhaft ist, vermeiden Sie einen Kontextwechsel, z. B. Wenn Sie wissen, dass eine Zustandsänderung bevorsteht, einen Aufruf der SpinWait -Methode in der Schleife. Der Code SpinWait führt wurde entwickelt, um Probleme zu verhindern, die auf Computern mit mehreren Prozessoren auftreten können. Auf Computern mit mehreren Intel-Prozessoren mit Hyper-Threading-Technologie beispielsweise SpinWait Prozessor verhungern in bestimmten Situationen verhindert.

.NET Framework
Verfügbar seit 1.1
Silverlight
Verfügbar seit 2.0
Windows Phone Silverlight
Verfügbar seit 7.0
Zurück zum Anfang
Anzeigen: