AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Umlaufzeit eines Threads ermitteln
Thema durchsuchen
Ansicht
Themen-Optionen

Umlaufzeit eines Threads ermitteln

Ein Thema von Thanatos81 · begonnen am 15. Nov 2007 · letzter Beitrag vom 15. Nov 2007
Antwort Antwort
Thanatos81
(Gast)

n/a Beiträge
 
#1

Umlaufzeit eines Threads ermitteln

  Alt 15. Nov 2007, 08:20
Tach auch!

Ich hab da mal ne kurze Frage. Und zwar ermittele ich die ungefähre Umlaufzeit eines Threads, in dem ich mir am Anfang des Thread.Execute den Wert von "now" in eine TDateTime-Variable "lastStart" speichere und beim nächsten Durchlauf delta := MilliSecondsBetween(lastStart, now) aufrufe.

Jetzt könnte es natürlich ein Problem geben bei der Umstellung von Sommer- auf Normalzeit. Theoretisch könnte lastStart von 02:59:59 sein und now 02:01:00. Da hätte ich ein negatives Delta

Da das Programm durchlaufen soll ist GetTickCount ja auch keine Lösung. Da könnte/würde ich ein dementsprechendes Problem nach 49,7 Tagen haben.

Wie macht ihr das in euren Threads, die dauerhaft laufen und bei denen ihr die Umlaufzeit benötigt?
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Umlaufzeit eines Threads ermitteln

  Alt 15. Nov 2007, 08:22
Die Lösung mit Now würde schon gehen. Und Sommer/Winterzeitumstellung sollte über entsprechende API-Befehle auch bestimmbar sein.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Thanatos81
(Gast)

n/a Beiträge
 
#3

Re: Umlaufzeit eines Threads ermitteln

  Alt 15. Nov 2007, 08:33
Jupp, so in der Richtung. Eine Lösung gibts hier auch schon, Stichwort UTC:

http://www.delphipraxis.net/internal...=340194#340194

Danke für den Fingerzeig!
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#4

Re: Umlaufzeit eines Threads ermitteln

  Alt 15. Nov 2007, 09:13
Übrigens kannst Du sehr wohl GetTickCount nehmen. Du musst nur wissen, wie man mit negativem Delta umgeht ...
Delphi-Quellcode:
Var
  Delta : Int64;

Begin
  Delta := GetTickCount - LastCall;
  If Delta < 0 Then Delta := High (Cardinal) + Delta;
Ungetestet, sollte aber funktionieren.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Thanatos81
(Gast)

n/a Beiträge
 
#5

Re: Umlaufzeit eines Threads ermitteln

  Alt 15. Nov 2007, 09:19
Hmm, auch ne interessante Variante. Ich bastel da mal ein Testprogramm mit und lass das mal ein paar Wochen aufm Server laufen. Mal schauen was passiert
  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 19:55 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