Array
(
)

Trabalhando com theread

Cgi_net
   - 16 ago 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.


Nadilson
   - 17 ago 2004

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...


Cgi_net
   - 18 ago 2004

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 ;)