Fórum Thread não funciona - help #366016

10/11/2008

0

já fiz diversas pesquisas aqui no forum sobre o assunto, e não sei pq a minha Thread não funciona, ela trava a aplicação, somente depois de uns segundos volta ao normal com as informações que quero.

olhem como estou fazendo

TThread1 = class(TThread) protected constructor Create; procedure Execute; override; end; { TThread1 } constructor TThread1.Create; begin inherited Create(true); end; procedure TThread1.Execute; begin Self.Priority := tpLowest; mprincipal.LoadRSS; // Aqui que esta travando; end; var Threads: TThread1; begin Threads := TThread1.Create; Threads.FreeOnTerminate := true; Threads.Execute;



obrigado amigos


Sremulador

Sremulador

Responder

Posts

11/11/2008

Marcosrocha

sremulador te digo com certeza que está travando porque o objeto pertence à aplicação e quando você manda carregar o RSS a Thread meio que ´espera´ a abertura do mesmo.
A solução seria criar e instanciar a classe que implementa LoadRSS dentro da Thread.
Já tivemos problemas parecidos com Threads + TIBDatabase + TIBQuery e a solução foi criar e instanciar objetos dessas classes dentro da Thread.


Responder

Gostei + 0

12/11/2008

Sremulador

sremulador te digo com certeza que está travando porque o objeto pertence à aplicação e quando você manda carregar o RSS a Thread meio que ´espera´ a abertura do mesmo. A solução seria criar e instanciar a classe que implementa LoadRSS dentro da Thread. Já tivemos problemas parecidos com Threads + TIBDatabase + TIBQuery e a solução foi criar e instanciar objetos dessas classes dentro da Thread.



você fala com o sincroneze


Responder

Gostei + 0

12/11/2008

Marcosrocha

Bom, na verdade minha sugestão era que método e classes que devem ler o CSS estivessem dentro da Thread.
TMyThread = class(TThread)
private
  IdHTTP1: TIdHTTP; // Faz de conta que é ele que acessa o RSS
  procedure LoadRSS;
protected
  procedure Execute; override;
end;

...

procedure TMyThread.LoadRSS;
begin
  IdHTTP1.GetURL(´http://www.google.com.br/´);
end;

Não sei se deu pra entender.


Responder

Gostei + 0

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

Aceitar