GARANTIR DESCONTO

Fórum Thread como testar se está sendo executada? #350926

21/12/2007

0

Amigos...
Tenho uma thread criada da seguinte forma no form principal de minha aplicação:

With TNPS_FTP.Criar(´Entrada´) Do
OnTerminate := Msg_NPS_Thread;

O problema é que carrego ela na entrada do sistema (evento show do form principal) e se o usuario fechar a aplicação principal, e a thread estiver sendo executada, dá um erro, pque parece que o fechamento do form principal mata o processamento da thread que carreguei na memoria.

Portanto gostaria de no close do form principal poder testar se a thread está em execução.. para barrar o fechamento da aplicação... ex: solicitar que aguarde alguns instantes até o termino do processamento da thread....


Um grande abraço a todos..
Conto com vcs...
Pablo Rodrigues


Pablo_lima

Pablo_lima

Responder

Posts

21/12/2007

Giordanocwb

Ao invés de utilizar ´With´, que realmente não aconselho, já tive alguns problemas com ele. Crie uma variável global do tipo da sua thread e associe na criação:



var MinhaThread: TNPS_FTP;


MinhaThread := TNPS_FTP.Criar(´Entrada´);


Para testar se sua thread foi terminada, basta você testar se MinhaThread está diferente de nil.

No manipulador de evento OnTerminate, ou seja, no Msg_NPS_Thread, coloque o código:

MinhaThread := nil;


Assim, ao terminar, ele libera o ponteiro da sua thread.

T+


Responder

Gostei + 0

21/12/2007

Giordanocwb

Uma correção, para testar se sua thread foi terminada, testa se MinhaThread está igual a nil.

T+


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar