![]() |
Überwachung von Variablen in einem Thread
Hallo Leute,
ich arbeitet an einem Programm, welches einen Thread starten und auch wieder stoppen kann, soweit nix dramatisches ;-). In diesem Thread erfolgt ein Funktionsaufruf mit Rückgabewert 1 oder 0 und eine Auswertung. Nun soll das ganze zeitgesteuert ablaufen. Wenn die Rückgabe der Funktionen im Thread z.B. 10 Sekunden lang 1 beträgt, soll der Thread automatisch neu gestartet werden. Nur bin ich mir noch ein wenig im unklaren, wie ich das ganze realisieren soll. ich könnte bei 1 eine Methode über Synchronize aufrufen, welche die Startzeit speichert und bei den nächsten Aufrufen immer vergleicht, wenn zeitspanne zu hoch, dann Neustart des Threads. Gibt es hierfür eventuell eine elegantere Lösung? |
Re: Überwachung von Variablen in einem Thread
Der Thread arbeitet ja wohl in einer Schleife.
Dann kann er sich doch selbst "neu starten"
Delphi-Quellcode:
Label Anfang;
begin Anfang: Initialisierung; // falls nötig Startwerte setzen FLastTime := Now; while not Terminated do begin x := RufeFunktion; if x <> 1 then FLastTime := Now else if (Now-FLastTime)*24.0*60.0*60.0 > 10.0 then goto Anfang; end; end; |
Re: Überwachung von Variablen in einem Thread
Hm, verstehe nicht so ganz was der Quelltext mit FlashTime bewirkt.
Der eigentliche Thread muß ständig weiterlaufen, das heisst die Funktion mit Rückgabewert muß auch ständig ausgeführt werden. Und seperat muß üperprüft werden, ob der Rückagbewert 10 Sekunden lang jeweils 1 gewesen ist, dann soll der Thread neu gestartet werden, andersfalls einfach weiterlaufen. ist der Rückgabewert dann wieder mal 1, soll eine erneute Zeitprüfung beginnen. Wird das mit deiner Routine realilsiert? Bin in Delphi noch ein Anfänger, deswegen die Nachfrage ;) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:37 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