Trabalhando com theread

16/08/2004

Olá amigos,

Estou com o seguinte problema.

Venho abrindo diversas theread´s consecutivas e coloco para ela limpar no final da execução. Só que, quando ela não é bem sucedida, ela continua na memoria, aumentando a MV do meu aplicativo. Por isto pergunto.

Existe alguma forma de eu dar um numero para o theread e fecha-la caso não seja bem sucedido em X segundos?

Se eu não me engano quando eu abro uma theread ela jah ganha um ID automaticamente... Como descobrir este id e matar o processo?

Não sei se fui bem claro, mas qualquer coisa estamos ai... Obrigado desde jah.

[]´s
Henrique F.


Cgi_net

Respostas

17/08/2004

Nadilson

Supondo que você criou uma variável do tipo global assim:

var
ThreadHandle : THandle;
ThreadD : DWORD;

E, depois, num procedimento qualquer:

ThreadHandle := CreateThread(nil, 0, @Procedimento_Do_Thread, nil, 0, ThreadID); // cria o thread...

Para encerrar o thread utilize o seguinte comando:

CloseHandle(ThreadHandle); // destrói o thread da memória!!!

Funciona que é uma beleza!!!

Caso não tenha sido isto o que queria, pode entrar em contato...


Responder Citar

18/08/2004

Cgi_net

Cara, não era extatamente isto mas vc acabou me dando uma bela de uma dica haeuhuaehuae, acabei chegando na solução baseado na sua mensagem.

Valew mesmo ;)


Responder Citar