Fórum Lista de threads #177496
26/08/2003
0
Oi pessoal,
eu estou com uma dificuldade: eu crio vários threads e identifico cada um com um número. Eu preciso rodar cada um em um horário específico e para isso eu tenho um componente alarme. No on alarme eu tenho que achar o thread específico para aquele horário, ex:
procedure TFormPrincipal.Criar(Nome,Referencia:String; Horario:TDateTime; Cubo:TCube;
Tipo:ProcessTypes);
begin
//cria o thead mas não executa
processo:=TProcesso.Create(true);
processo.Cubo:=Cubo;
//especifica horário e tipo de processamento
processo.Nome:=Nome;
processo.Referencia:=Referencia;
processo.Horario:=Horario;
processo.Tipo:=Tipo;
processo.Priority:=tpLower;
//Cria um alarme para cada Thread
Alarme.AddExact(Horario,Referencia);
end;
procedure TFormPrincipal.Executar(MeuProcesso:TProcesso);
begin
MeuProcesso.Resume;
MeuProcesso.WaitFor;
MeuProcesso.Free;
end;
procedure TFormPrincipal.AlarmeAlarm(Sender: TObject; AlarmEvent: Integer;
Reference: ShortString);
var p: TProcesso;
begin
//como eu acho o processo com a Referencia=Reference????
Executar(p);
end;
eu estou com uma dificuldade: eu crio vários threads e identifico cada um com um número. Eu preciso rodar cada um em um horário específico e para isso eu tenho um componente alarme. No on alarme eu tenho que achar o thread específico para aquele horário, ex:
procedure TFormPrincipal.Criar(Nome,Referencia:String; Horario:TDateTime; Cubo:TCube;
Tipo:ProcessTypes);
begin
//cria o thead mas não executa
processo:=TProcesso.Create(true);
processo.Cubo:=Cubo;
//especifica horário e tipo de processamento
processo.Nome:=Nome;
processo.Referencia:=Referencia;
processo.Horario:=Horario;
processo.Tipo:=Tipo;
processo.Priority:=tpLower;
//Cria um alarme para cada Thread
Alarme.AddExact(Horario,Referencia);
end;
procedure TFormPrincipal.Executar(MeuProcesso:TProcesso);
begin
MeuProcesso.Resume;
MeuProcesso.WaitFor;
MeuProcesso.Free;
end;
procedure TFormPrincipal.AlarmeAlarm(Sender: TObject; AlarmEvent: Integer;
Reference: ShortString);
var p: TProcesso;
begin
//como eu acho o processo com a Referencia=Reference????
Executar(p);
end;
Hellen
Curtir tópico
+ 0
Responder
Posts
19/01/2004
Mturon
Cara Hellen, apesar de não estar muito familiarizado com o seu componente Alarm, ao ocorrer o evento onAlarm vc tem como identificar o Reference? Se tem, tente fazer um FOR, formatando o contador para montar o nome de sua tarefa, busque a tarefa especifica pelo nome e verifique a referencia da mesma. Isto deve resolver.
Agora... Mudando de assunto, alguma de suas tarefas mexe com queries? Vc sabe como montar threads utilizando Sessions para executar queries concorrentes em banco de dados? Preciso de um help neste assunto urgente. meu email é turon.cm@funcef.com.br
Valeu Helen, espero que minha dica ajude.
Agora... Mudando de assunto, alguma de suas tarefas mexe com queries? Vc sabe como montar threads utilizando Sessions para executar queries concorrentes em banco de dados? Preciso de um help neste assunto urgente. meu email é turon.cm@funcef.com.br
Valeu Helen, espero que minha dica ajude.
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)