Compartilhar via


Função SwitchToThread (processthreadsapi.h)

Faz com que o thread de chamada conceda a execução para outro thread que está pronto para ser executado no processador atual. O sistema operacional seleciona o próximo thread a ser executado.

Sintaxe

BOOL SwitchToThread();

Retornar valor

Se chamar a função SwitchToThread fez com que o sistema operacional alternasse a execução para outro thread, o valor retornado será diferente de zero.

Se não houver outros threads prontos para execução, o sistema operacional não alterna a execução para outro thread e o valor retornado é zero.

Comentários

O rendimento da execução está em vigor para até uma fatia de tempo de agendamento de thread no processador do thread de chamada. O sistema operacional não alternará a execução para outro processador, mesmo que esse processador esteja ocioso ou esteja executando um thread de prioridade mais baixa.

Depois que a fatia de tempo do thread de rendimento decorrer, o sistema operacional reagenda a execução para o thread de rendimento. O reagendamento é determinado pela prioridade do thread de rendimento e pela status de outros threads que estão disponíveis para execução.

Observe que o sistema operacional não mudará para um thread que está sendo impedido de ser executado somente pelo controle de simultaneidade. Por exemplo, uma porta de conclusão de E/S ou um pool de threads limita o número de threads associados que podem ser executados. Se o número máximo de threads já estiver em execução, nenhum thread associado adicional poderá ser executado até que um thread em execução seja concluído. Se um thread usar SwitchToThread para aguardar um dos threads associados adicionais para realizar algum trabalho, o processo poderá ficar em deadlock.

Para compilar um aplicativo que usa essa função, defina _WIN32_WINNT como 0x0400 ou posterior. Para obter mais informações, consulte Usando os cabeçalhos do Windows.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows XP [aplicativos da área de trabalho | aplicativos UWP]
Servidor mínimo com suporte Windows Server 2003 [aplicativos da área de trabalho | Aplicativos UWP]
Plataforma de Destino Windows
Cabeçalho processthreadsapi.h (inclua Windows.h no Windows Server 2003, Windows Vista, Windows 7, Windows Server 2008 Windows Server 2008 R2)
Biblioteca Kernel32.lib
DLL Kernel32.dll

Confira também

Funções de thread e processo

SuspendThread

Suspendendo a execução do thread

Threads