Re: [delphi-br] Encerrar Thread
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
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
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]