Thema: Delphi Events in einem Thread

Einzelnen Beitrag anzeigen

ThorvdA

Registriert seit: 25. Apr 2006
6 Beiträge
 
#1

Events in einem Thread

  Alt 30. Mai 2010, 13:17
Hallo zusammen,

es geht darum Events von Komponenten in einem Thread aufzurufen.
Also der Thread erstellt sich (beispielsweise) einen Timer in Create und setzt das Event auf eine eigene Prozedur.
Hier die wichtigsten Zeilen:

Delphi-Quellcode:
type TMeinthread = class(TThread)
                     private
                       Timer : TTimer;
                       procedure TimerEvent(Sender : TObject);
                     public
                       constructor Create(CreateSuspended : Boolean); override;
                       procedure Execute; override;
                     end;

implementation

constructor TMeinthread.Create(CreateSuspended : Boolean);
begin
  inherited;
  Timer:=TTimer.Create(nil);
  Timer.OnTimer=TimerEvent;
end;

procedure TMeinthread.Execute;
begin
  while not Terminated do
    Sleep(100); // irgendwas eben
end;

procedure TMeinthread.TimerEvent(Sender : TObject);
begin
  Sleep(500); // noch irgendwas
end;
Wie ich natürlich bemerken musste läuft das TimerEvent innerhalb meines Hauptthreads ab und blockiert mein Formular.
Was kann ich dagegen tun? Das ganze ist nur Beispielhaft, ich stehe häufiger vor dieser Art von Problem.

Grüße!
  Mit Zitat antworten Zitat