Fórum duvidas threads #553281
05/05/2016
0
Estou começando a trabalhar com threads.
Fiz uma thread que fica dando um refresh em uma query minha.
quando ele da refresh o mouse muda como se estivesse pensando e da uma travada no meu programa.
gostaria de saber se isso é normal, se tem alguma programação na thread para nao fazer isso.
Uso firedac e firebird.
Obrigado desde ja
Tiago W. Schneider
Tiago Schneider
Curtir tópico
+ 0Posts
07/05/2016
Raylan Zibel
Gostei + 0
09/05/2016
Tiago Schneider
obrigado
Gostei + 0
10/05/2016
Tiago Schneider
unit uimportaabas;
interface
uses
System.Classes, Vcl.Dialogs,
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.ExtCtrls, JvExExtCtrls,
JvExtComponent, JvPanel, Vcl.Buttons, Vcl.StdCtrls, Vcl.ComCtrls;
type
importaAbas = class(TThread)
private
{ Private declarations }
index:integer;
protected
procedure p_atualizar;
procedure Execute; override;
public
constructor create(p_val:integer); overload;
destructor destroy(); override;
end;
implementation
uses udiversos_abastecimentos, udmpri;
constructor importaAbas.create(p_val: Integer);
begin
inherited create(true);
FreeOnTerminate := true;
index := p_val;
end;
destructor importaAbas.Destroy;
begin
inherited
end;
procedure importaAbas.p_atualizar;
begin
inherited;
try
p_abas_andamento;
dmpri.que_pisaba.Refresh;
finally
end;
end;
procedure importaAbas.Execute;
var
c_tex:TextFile;
begin
inherited;
Priority := tpNormal;
try
while not Self.Terminated do
begin
Application.processmessages;
if Terminated then
abort;
Synchronize(p_atualizar);
Sleep(3000);
end;
except
on E: Exception do
begin
AssignFile(c_tex, 'logerros\'+DateTimeToStr(now)+'.log');
Rewrite(c_tex);
writeln(c_tex,e.Message);
CloseFile(c_tex);
end;
end;
end;
Gostei + 0
12/05/2016
Tiago Schneider
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)