Função ExitThread (processthreadsapi.h)
Encerra o thread de chamada.
Sintaxe
void ExitThread(
[in] DWORD dwExitCode
);
Parâmetros
[in] dwExitCode
O código de saída do thread.
Valor retornado
Nenhum
Comentários
ExitThread é o método preferencial de sair de um thread no código C. No entanto, no código C++, o thread é encerrado antes que qualquer destruidor possa ser chamado ou qualquer outra limpeza automática possa ser executada. Portanto, no código C++, você deve retornar da função de thread.
Quando essa função é chamada (explicitamente ou retornando de um procedimento de thread), a pilha do thread atual é desalocada, todas as E/S pendentes iniciadas pelo thread que não está associado a uma porta de conclusão são canceladas e o thread é encerrado. A função de ponto de entrada de todas as DLLs (bibliotecas de vínculo dinâmico) anexadas é invocada com um valor que indica que o thread está desanexando da DLL.
Se o thread for o último thread no processo quando essa função for chamada, o processo do thread também será encerrado.
O estado do objeto thread torna-se sinalizado, liberando quaisquer outros threads que estavam aguardando o término do thread. A terminação do thread status muda de STILL_ACTIVE para o valor do parâmetro dwExitCode.
Encerrar um thread não remove necessariamente o objeto thread do sistema operacional. Um objeto thread é excluído quando o último identificador para o thread é fechado.
As funções ExitProcess, ExitThread, CreateThread, CreateRemoteThread e um processo que está sendo iniciado (como resultado de uma chamada CreateProcess ) são serializados entre si em um processo. Somente um desses eventos pode acontecer em um espaço de endereço por vez. Isso significa que as seguintes restrições são retenção:
- Durante as rotinas de inicialização de processo e inicialização de DLL, novos threads podem ser criados, mas eles não iniciam a execução até que a inicialização da DLL seja feita para o processo.
- Somente um thread em um processo pode estar em uma rotina de inicialização ou desanexação de DLL por vez.
- ExitProcess não retorna até que nenhum thread esteja em suas rotinas de inicialização ou desanexação de DLL.
Use a função GetExitCodeThread para recuperar o código de saída de um thread.
Windows Phone 8.1: essa função tem suporte para aplicativos Windows Phone Store no Windows Phone 8.1 e posterior.
Windows 8.1 e Windows Server 2012 R2: essa função tem suporte para aplicativos da Windows Store em Windows 8.1, Windows Server 2012 R2 e posterior.
Exemplos
Para obter um exemplo, consulte Usando objetos de evento.
Requisitos
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; WindowsPhoneCore.lib no Windows Phone 8.1 |
DLL | Kernel32.dll; KernelBase.dll no Windows Phone 8.1 |