Atualização da informação q carrega uma Thread
Pessoal, necessito de algumas dicas de vcs, pois estou apanhando neste dados abaixo.
- Tenho um Data Modulo q cria uma classe qualquer chamada por exemplo TThreadCarregarDados.
- Ao criar esta classe, ela cria uma respectiva thread chamada neste exemplo de TThreadNova;
- No Execute do TThreadNova eu tenho um WAITFOR q será realizado de X em X tempo ao atualizar um contador por exemplo;
- Mas eu passo de parâmetro o respectivo código de busca, q na primeira instancia está em branco pois não tem nenhuma informação;
- Minha dúvida é em q momento atualizo esta informação do parâmetro "pCodigo", sendo q criei a mesma na classe anterior e no primeiro momento já foi criado em branco?
Não sei se ficou confuso para vcs, mas por está no problema muito tempo, já não estou vendo aonde está errado.
Agradeço a atenção de vcs
- Tenho um Data Modulo q cria uma classe qualquer chamada por exemplo TThreadCarregarDados.
- Ao criar esta classe, ela cria uma respectiva thread chamada neste exemplo de TThreadNova;
- No Execute do TThreadNova eu tenho um WAITFOR q será realizado de X em X tempo ao atualizar um contador por exemplo;
- Mas eu passo de parâmetro o respectivo código de busca, q na primeira instancia está em branco pois não tem nenhuma informação;
- Minha dúvida é em q momento atualizo esta informação do parâmetro "pCodigo", sendo q criei a mesma na classe anterior e no primeiro momento já foi criado em branco?
Não sei se ficou confuso para vcs, mas por está no problema muito tempo, já não estou vendo aonde está errado.
Agradeço a atenção de vcs
unit DataModuloPrincipal;
type
TThreadCarregarDados = class (TThread)
private
protected
procedure Execute; override;
public
end;
procedure TThreadCarregarDados.Execute;
var
lBuscaQualquer : TtrBusca;
begin
// bla bla
ThreadBuscaQualquer := TThreadBuscaXXX.Create;
try
ThreadBuscaQualquer.Codigo = ''123'';
ThreadBuscaQualquer.Descricao = ''Descricao Qualquer'';
// bla bla
finally
ThreadBuscaQualquer.Free;
end;
end;
unit uBuscas;
TThreadNova = class(TThread)
private
protected
procedure Execute; override;
public
FCodigo : string;
FEvento : TEvent;
constructor Create(CreateSuspended : Boolean; pCodigo: string);
destructor Destroy; override;
procedure Terminate;
property Evento : TEvent read FEvento;
end;
TtrBusca = class
private
public
Codigo : string;
Descricao : String;
ListaDeBuscaCampanha : TThreadNova;
constructor Create;
destructor Destroy; override;
end;
constructor TtrBusca.Create;
begin
// bla bla
// bla bla
// Neste momento o código está vazio e cria minha respectiva Thread nova
ListaDeBusca := TThreadNova.Create(False, Codigo);
end;
// Thread
constructor TThreadNova.Create(CreateSuspended : Boolean; pCodigo : string);
begin
inherited Create(CreateSuspended);
FCodigo := pCodigo;
Priority := tpNormal;
FreeOnTerminate := True;
FEvento := TEvent.Create(nil, False, False, '''');
Resume;
end;
// Execute da Thread Nova
procedure TThreadNova.Execute;
begin
while not Terminated do
begin
FEvento.WaitFor(1000);
qryBusca := ''select count(*) qtd from teste where codigo = '' + pCodigo;
qryBusca.Open;
while not qryBusca.EOF do
begin
end;
end;
end;
Alessandro Yamasaki
Curtidas 0