![]() |
Threaded vs. Windows-Timer: Was ist 'besser'?
Hallo,
Wir sind hier am 'streiten' bzw. nicht wissen (deshalb streiten), was 'besser' für eine Anwendung ist: Ein threaded Timer oder ein Windows-Timer. Ein threaded Timer könnte so umgesetzt werden
Delphi-Quellcode:
Oder mit einem Event:
Procedure TThreadedTimer.Execute;
Begin While not Terminated do begin If FEnabled then Synchronize (DoOnTimer); Sleep (FInterval); End End;
Delphi-Quellcode:
Welche Variante würdet ihr nehmen, wenn die Aufgabe 'optimiert den Code hinsichtlich Performance' heißt und ihr nur max. 20% einer CPU für euch habt?
Procedure TThreadedTimer.Execute;
Begin While not Terminated do begin If WaitForSingleObject (FWhatEverHandle, FInterval) = WAIT_OBJECT_0 Then If FEnabled then Synchronize (DoOnTimer);Synchronize (DoOnTimer); End End; |
AW: Threaded vs. Windows-Timer: Was ist 'besser'?
Da eigentlich aller wichtiger Code im Synchronize abläuft und im Timer eigentlich nur noch ein Sleep drin steckt.
Ist der Thread vollkommen nutzlos, da er nichts macht, außer schlafen. Antwort: Windows-Timer (z.B. TTimer) ist definitiv besser. (hier scheint es ja nicht um einen HighResolutionTimer zu gehn) PS: Zitat:
|
AW: Threaded vs. Windows-Timer: Was ist 'besser'?
Zitat:
Zitat:
Ich dachte immer, diese WM_Timer sind teuer. Man lernt halt nie aus. |
AW: Threaded vs. Windows-Timer: Was ist 'besser'?
Ähem,
vlt. gilt das ja in aktuellen Windows-Versionen nicht mehr, aber hatte die Timer-Botschaft nicht ein niedrige Priorität und konnte deshalb auch mal "verschluckt" werden? Grüße wo |
AW: Threaded vs. Windows-Timer: Was ist 'besser'?
Zitat:
Einer oder zumindest sehr wenige reichen doch, die ggf. die anderen Aufgaben anstoßen... Ob nun 100 Threads oder 100 Timer, beides macht (meistens) wenig Sinn. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:45 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