Thread.SpinWait(Int32) Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Faz com que um thread aguarde o número de vezes definido pelo parâmetro iterations
.
public:
static void SpinWait(int iterations);
public static void SpinWait (int iterations);
static member SpinWait : int -> unit
Public Shared Sub SpinWait (iterations As Integer)
Parâmetros
- iterations
- Int32
Um inteiro com sinal de 32 bits que define quanto tempo um thread deverá aguardar.
Comentários
O SpinWait método é útil para implementar bloqueios. As classes no .NET Framework, como Monitor e , usam esse método ReaderWriterLock internamente. SpinWait essencialmente coloca o processador em um loop muito rígido, com a contagem de loops especificada pelo iterations
parâmetro . Portanto, a duração da espera depende da velocidade do processador.
Contraste isso com o Sleep método . Um thread que chama gera o restante de sua fatia atual de tempo do processador, mesmo Sleep que o intervalo especificado seja zero. Especificar um intervalo diferente de zero para remove o thread da consideração pelo agendador de thread até que o intervalo de Sleep tempo tenha decorrido.
SpinWait geralmente não é útil para aplicativos comuns. Na maioria dos casos, você deve usar as classes de sincronização fornecidas pelo .NET Framework; por exemplo, chamar ou uma instrução que envolva ( em C# ou em Monitor.Enter Monitor.Enter lock
SyncLock
Visual Basic).
Cuidado
No caso raro em que é vantajoso evitar uma opção de contexto, como quando você sabe que uma alteração de estado é iminente, faça uma chamada para o método em SpinWait seu loop. O código SpinWait executado foi projetado para evitar problemas que podem ocorrer em computadores com vários processadores. Por exemplo, em computadores com vários processadores Intel que empregam Hyper-Threading tecnologia, impede a insinuidade SpinWait do processador em determinadas situações.