Hallo
ich habe folgendes Problem:
ich nutze eine Timer um zyklisch Werte aus einem Gerät zu holen (ja ich weiß, ein Thread wäre hier vielleicht angebrachter
)
das klappt ja auch, mein Problem ist nun, das ich innerhalb meines Timers Application.ProcessMessages aufrufen muss,
damit die Form weiter bedienbar bleibt.
Jetzt will ich den Timer ja auch mal beenden:
meinTimer.enabled:=false;
Z.b.: wenn ich die Verbindung zur Schnittstelle beende.
Dann will ich auch mein Objekt freigeben:
MeinGeraet.Free;
Timerprozedur:
Delphi-Quellcode:
procedure TMainGUI.tmrAblaufTimer(Sender: TObject);
begin
MeinGeraet.HoleDies;
Application.ProcessMessages; // angenommen mein Obj ist schon freigegeben (dann knallts)
MeinGeraet.HoleJenes;
Application.ProcessMessages;
MeinGeraet.HoleDas;
end;
In meinem Disconnect Button mach ich folgendes:
Delphi-Quellcode:
begin
meinTimer.enabled:=false; // Timer soll beendet werden
// Wie kann ich sicher gehen, dass der Timer nicht mehr aktiv ist, d.h. auch keine Timerprozedur mehr ausgeführt wird????
MeinGeraet.Free;
end;
Ich brauch hier eine Synchronisationsmethode, um auf das Ende vom der Timerprozedur zu warten, wie kann ich das machen???
Danke euch!
end;