![]() |
Unterschied TStopwatch.Elapsed.Milliseconds und TStopwatch.ElapsedMilliseconds
Hallo,
in einem D10.4.2 Programm liefern TStopwatch.Elapsed.Milliseconds und TStopwatch.ElapsedMilliseconds an der selben Stelle im Programm unterschiedliche Werte. Wenn man da rein schaut, läuft in der RTL auch untershciedlcher Code, aber sollten die nicht eigentlich von der Definition her dasselbe liefern? Grüße TurboMagic |
AW: Unterschied TStopwatch.Elapsed.Milliseconds und TStopwatch.ElapsedMilliseconds
Interessant, ist mir noch nie aufgefallen, ich habe immer ElapsedMilliseconds genutzt.
Ich habe hier nur D11, ist aber bestimmt gleich geblieben Identisch sind die Funktionen nicht, bei (1) ist noch ein mod 1000 drin und gibt anscheinend nur den Rest der Millisekunden vom jeweiligen Zeitobjekt zurück. Wobei (2) mit ElapsedMilliseconds die kompletten ms zurückgibt, ohne Begrenzung.
Delphi-Quellcode:
Wenn Du was Ähnliches haben willst hilft vielleicht das Elapsed.TotalMilliseconds, ist aber dann ein Double.(1) LStp.Elapsed.Milliseconds; function TStopwatch.GetElapsed: TTimeSpan; begin Result := TTimeSpan.Create(GetElapsedDateTimeTicks); end; function TTimeSpan.GetMilliseconds: Integer; begin Result := Integer((FTicks div TicksPerMillisecond) mod 1000); end; (2) LStp.ElapsedMilliseconds; function TStopwatch.GetElapsedMilliseconds: Int64; begin Result := GetElapsedDateTimeTicks div TTimeSpan.TicksPerMillisecond; end; public const TicksPerMillisecond = 10000; function TStopwatch.GetElapsedDateTimeTicks: Int64; begin Result := ElapsedTicks; if FIsHighResolution then Result := Trunc(Result * TickFrequency); end;
Delphi-Quellcode:
function TTimeSpan.GetTotalMilliseconds: Double;
begin Result := MillisecondsPerTick; Result := FTicks * Result; if Result > MaxMilliseconds then Result := MaxMilliseconds else if Result < MinMilliseconds then Result := MinMilliseconds; end; |
AW: Unterschied TStopwatch.Elapsed.Milliseconds und TStopwatch.ElapsedMilliseconds
Das Eine gibt alle Millisekunden über die gesamte Dauer an (Millisekunden seit)
das Andere den "Millisekunden"-Anteil der Zeitspanne, siehe das mod, neben den Sekunden, Minuten, Stunden (also das zzz aus hh:mm:ss.zzz). |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:39 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