Re: [delphi-br] Encerrar Thread

2010-04-30 Por tôpico Mário Guedes
Não entendi exatamente o cenário mas de qualquer forma adianto os posts que
eu fiz a respeito de thread:

http://eugostododelphi.blogspot.com/search/label/thread


[As partes desta mensagem que não continham texto foram removidas]



Re: [delphi-br] Encerrar Thread

2010-04-30 Por tôpico Marcos Douglas
Olá Eny,

2010/4/30 Eny Urias enyur...@yahoo.com.br:
 Olá!

 Estou começando a trabalhar com threads... Mas estou com uma dúvida... Tenho 
 um loop de atualização de dados... Mas como é um processo demorado, quero 
 deixar disponível um botão para o usuário encerrar o programa. Como faço para 
 que, ao pressionar o botão, o programa aguarde um aviso da thread dizendo que 
 está liberada e aí eu possa encerrar a thread e o programa? Já procurei em 
 tudo quanto é lugar e achei umas funções da API: PostThreadMessage e 
 WaitforSingleObject... mas não consegui aplica-las. Alguem sabe como eu posso 
 fazer isso?


Para pausar uma Thread, ao pressionar um botão, utilize o método
Suspend e logo após faça o questionamento ao usuário se é para
continuar ou não; para continuar utilize o método Resume.
Se for o inverso, ou seja, a Thread que vai avisar o programa que
acabou, utilize o evento da Thread chamado OnTerminate (você terá que
setar este evento após criar a Thread, utilizando um método do
formulário, por exemplo.

Procure mais sobre isso no próprio help do Delphi que tem tudo.


Marcos Douglas


Re: [delphi-br] Encerrar Thread

2010-04-30 Por tôpico Roni Rodrigo
a thread tem uma propriedade chamada suspended.
se for true, a thread nao esta em execucao... vc tb pode suspende-la a 
qualquer momento chamando o método suspend ou Terminate..
suspend = congela a thread.
Terminate = finaliza a execucao da thread
Ex:
if not MinhaThread.Suspended then
begin
 MinhaThread.Terminate;
 Close;
end;


Em 30/04/2010 09:43, Eny Urias escreveu:

 Olá!

 Estou começando a trabalhar com threads... Mas estou com uma dúvida... 
 Tenho um loop de atualização de dados... Mas como é um processo 
 demorado, quero deixar disponível um botão para o usuário encerrar o 
 programa. Como faço para que, ao pressionar o botão, o programa 
 aguarde um aviso da thread dizendo que está liberada e aí eu possa 
 encerrar a thread e o programa? Já procurei em tudo quanto é lugar e 
 achei umas funções da API: PostThreadMessage e WaitforSingleObject... 
 mas não consegui aplica-las. Alguem sabe como eu posso fazer isso?

 Desde já agradeço!

 --
 Eny Trova Urias
 Somos o que repetitivamente fazemos, portanto, a excelência não é um 
 feito, mas um hábito- Aristóteles

 


[As partes desta mensagem que não continham texto foram removidas]