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;


Hellen

Hellen

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.


Responder

Gostei + 0

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

Aceitar