Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Metodo Thread.SpinWait (Int32)

 

Data di pubblicazione: ottobre 2016

Determina che un thread rimanga in attesa il numero di volte definito dal parametro iterations.

Spazio dei nomi:   System.Threading
Assembly:  mscorlib (in mscorlib.dll)

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

Parametri

iterations
Type: System.Int32

Intero con segno a 32 bit che definisce la durata dell'attesa di un thread.

Il SpinWait metodo è utile per l'implementazione di blocchi. Le classi in .NET Framework, ad esempio Monitor e ReaderWriterLock, utilizzare questo metodo internamente. SpinWait Inserisce essenzialmente il processore in un ciclo molto ridotto, con il conteggio dei cicli specificato per il iterations parametro. La durata dell'attesa dipende pertanto dalla velocità del processore.

Per ovviare a questo con il Sleep metodo. Un thread che chiama Sleep restituisce il resto del periodo corrente del tempo del processore, anche se l'intervallo specificato è uguale a zero. Specificando un intervallo diverso da zero per Sleep Rimuove il thread dalla considerazione dall'utilità di pianificazione di thread fino a quando non è trascorso l'intervallo di tempo.

SpinWait non è in genere utile per le applicazioni comuni. Nella maggior parte dei casi, è necessario utilizzare le classi di sincronizzazione fornite da .NET Framework. ad esempio, chiamare Monitor.Enter o un'istruzione che esegue il wrapping Monitor.Enter (lock in c# o SyncLock in Visual Basic).

System_CAPS_cautionAttenzione

Nel raro caso in cui è preferibile evitare un cambio di contesto, ad esempio quando si è certi che una modifica dello stato è imminente, effettuare una chiamata al SpinWait metodo nel ciclo. Il codice SpinWait esegue è progettato per evitare i problemi che possono verificarsi nel computer con più processori. Ad esempio, nei computer con più processori Intel basati su tecnologia Hyper-Threading, SpinWait impedisce l'esaurimento delle risorse del processore in determinate situazioni.

.NET Framework
Disponibile da 1.1
Silverlight
Disponibile da 2.0
Windows Phone Silverlight
Disponibile da 7.0
Torna all'inizio
Mostra: