Thread não funciona - help
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
obrigado amigos
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
Curtidas 0
Respostas
Marcosrocha
10/11/2008
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.
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.
GOSTEI 0
Sremulador
10/11/2008
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
GOSTEI 0
Marcosrocha
10/11/2008
Bom, na verdade minha sugestão era que método e classes que devem ler o CSS estivessem dentro da Thread.
Não sei se deu pra entender.
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.
GOSTEI 0