Compartilhar via


_endthread, _endthreadex

Termina um thread; _endthread termina um thread criado por _beginthread e _endthreadex termina um thread criado por _beginthreadex.

Sintaxe

void _endthread( void );
void _endthreadex(
   unsigned retval
);

Parâmetros

retval
Código de saída do thread.

Comentários

Você pode chamar a função _endthread ou _endthreadex explicitamente para terminar um thread. No entanto, a função _endthread ou _endthreadex é chamada automaticamente quando o thread volta da rotina apresentada como parâmetro à função _beginthread ou _beginthreadex. Chamar a função endthread ou _endthreadex para terminar um thread ajuda a garantir que os recursos alocados ao thread sejam devidamente recuperados.

Observação

No caso de arquivos executáveis vinculados a Libcmt.lib, não chame a API ExitThread do Win32. Isso impede que o sistema do tempo de execução recupere os recursos alocados. As funções _endthread e _endthreadex recuperam os recursos alocados ao thread e chamam a API ExitThread.

A função _endthread fecha o identificador de thread automaticamente. (Esse comportamento difere do da API ExitThread do Win32.) Portanto, quando você usar _beginthread e _endthread, não feche explicitamente o identificador de thread chamando a API CloseHandle do Win32.

Como a API ExitThread do Win32, a função _endthreadex não fecha o identificador de thread. Portanto, ao usar as funções _beginthreadex e _endthreadex, você deve fechar o identificador de thread explicitamente chamando a API CloseHandle do Win32 para fechar o identificador de thread.

Observação

As funções _endthread e _endthreadex fazem com que os destruidores C++ pendentes no thread não sejam chamados.

Por padrão, o estado global dessa função tem como escopo o aplicativo. Para alterar esse comportamento, confira Estado global no CRT.

Requisitos

Função Cabeçalho necessário
_endthread <process.h>
_endthreadex <process.h>

Para obter informações sobre compatibilidade, consulte Compatibilidade.

Bibliotecas

Somente versões multi-threaded da biblioteca em tempo de execução do C.

Exemplo

Confira o exemplo de _beginthread.

Confira também

Controle de processo e ambiente
_beginthread, _beginthreadex