![]() |
Timer im Hintergrund Thread
Hallo liebes Forum.
Folgendes Problem: Ich möchte, dass eine Timer Geschichte in einem Hintergrund Thread arbeitet. Eigentlich wäre es eine Möglichkeit mit Endlosschleifen zu arbeiten, dies funktioniert aber bei mir nicht, weswegen ich es über Timer realisieren will. Es funktoniert bisher mit dem Timer, jedoch lediglich im Hauptprogramm. Hier mein bisheriger Rahmencode (mit nicht funktionierender Endlosschleife):
Code:
…
type TMyThread = class(TThread) procedure Execute; override; end; type TForm33 = class(TForm) … procedure TMyThread.Execute; begin while true do begin Sleep(1000); try … {längerer zu wiederholender Threadcode} except … end; end; ... procedure TForm33.FormCreate(Sender: TObject); var MyThread: TMyThread; begin MyThread := TMyThread.Create(False); // startet sofort end; |
AW: Timer im Hintergrund Thread
Was genau "funktioniert denn nicht"?
Im übrigen ist es im Execute() besser, seine "Endlos-"Schleifen mit
Delphi-Quellcode:
zu "rahmen", da der Thread sonst nie terminieren kann - auch nicht, wenn es ihm von außen gesagt wird.
while not (self.)Terminated do ...
(Delphi VCL) TTimer: Geht nicht, weil der auf Window-Messages basiert, die nur vom Hauptthread verarbeitet werden. |
AW: Timer im Hintergrund Thread
Zitat:
|
AW: Timer im Hintergrund Thread
Auf jeden Fall nur Timer ODER Thread.
Timer ist einfacher. Wenn es sich damit gut lösen lässt und die Aktion im Timer keine hohe Last auslöst, dann nimm ihn. Ansonsten einen Thread (die Details wären dann noch genauer abzustimmen). |
AW: Timer im Hintergrund Thread
Zitat:
|
AW: Timer im Hintergrund Thread
Vermutlich machst du in dem Code etwas, das nicht im try..except abgefangen wird. Dafür kann man z.B. den ErrorMode anpassen.
Die Frage ist, was du da machst. Was passiert denn im Debugger? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:52 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz