Usuário com melhor resposta
Finalizar uma Thread

Pergunta
-
Olá, estou desenvolvendo um aplicativo que no momento utiliza uma thread para verificar se a conexão 3g do windows mobile já esta conectada, ou se deu algum erro... enfim.
Me deparei com o seguinte problema, até então eu estava finalizando a thread assim:
DWORD dwExitCode; ::GetExitCodeThread(m_hConnectionCheckThread,&dwExitCode); if(dwExitCode == STILL_ACTIVE) ::TerminateThread(m_hConnectionCheckThread,0); while(dwExitCode == STILL_ACTIVE) ::GetExitCodeThread(m_hConnectionCheckThread,&dwExitCode); if(m_hConnectionCheckThread) ::CloseHandle(m_hConnectionCheckThread);
Mas, parece que não está mais funcionando, ele entra no primeiro if, e pff nada mais acontece.
Alguém saberia como finalizar a thread de outra forma?
Respostas
-
Olá Bruno,
Parece que ocorreu um deadlock. :-(
Uma outra sugestão para finalizar o thread:
#include <windows.h>
#include <stdio.h>
volatile BOOL CanThreadContinue;
DWORD WINAPI ThreadProc( LPVOID )
{
while(CanThreadContinue){ printf("."); Sleep(100); }
return 0;
}
int main()
{
DWORD tid;
CanThreadContinue = TRUE;
HANDLE th = CreateThread( NULL, 0, ThreadProc, NULL, 0, &tid );
Sleep(1000);
CanThreadContinue = FALSE;
DWORD exit_code = STILL_ACTIVE;
while( exit_code == STILL_ACTIVE ) GetExitCodeThread( th, &exit_code );
CloseHandle(th);
}
Fabio Galuppo- Marcado como Resposta Bruno Luiz K. _ quinta-feira, 2 de setembro de 2010 17:06
Todas as Respostas
-
Olá Bruno,
Parece que ocorreu um deadlock. :-(
Uma outra sugestão para finalizar o thread:
#include <windows.h>
#include <stdio.h>
volatile BOOL CanThreadContinue;
DWORD WINAPI ThreadProc( LPVOID )
{
while(CanThreadContinue){ printf("."); Sleep(100); }
return 0;
}
int main()
{
DWORD tid;
CanThreadContinue = TRUE;
HANDLE th = CreateThread( NULL, 0, ThreadProc, NULL, 0, &tid );
Sleep(1000);
CanThreadContinue = FALSE;
DWORD exit_code = STILL_ACTIVE;
while( exit_code == STILL_ACTIVE ) GetExitCodeThread( th, &exit_code );
CloseHandle(th);
}
Fabio Galuppo- Marcado como Resposta Bruno Luiz K. _ quinta-feira, 2 de setembro de 2010 17:06
-
Povo que estiver clicando aqui, vai um link para quem quiser entender melhor sobre threads...