AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Überwachung von Variablen in einem Thread
Thema durchsuchen
Ansicht
Themen-Optionen

Überwachung von Variablen in einem Thread

Ein Thema von LokutusvB · begonnen am 5. Sep 2006 · letzter Beitrag vom 5. Sep 2006
Antwort Antwort
LokutusvB

Registriert seit: 18. Jul 2006
277 Beiträge
 
Delphi XE6 Enterprise
 
#1

Überwachung von Variablen in einem Thread

  Alt 5. Sep 2006, 17:29
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?
MFG
LokutusvB
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#2

Re: Überwachung von Variablen in einem Thread

  Alt 5. Sep 2006, 18:20
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;
Andreas
  Mit Zitat antworten Zitat
LokutusvB

Registriert seit: 18. Jul 2006
277 Beiträge
 
Delphi XE6 Enterprise
 
#3

Re: Überwachung von Variablen in einem Thread

  Alt 5. Sep 2006, 18:42
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
MFG
LokutusvB
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:51 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz