Thema: Delphi Polling im TThread

Einzelnen Beitrag anzeigen

Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#9

AW: Polling im TThread

  Alt 27. Aug 2014, 21:35
Zitat:
ist aber im Grunde busy-waiting und daher unschöner.
Der Tread soll ja nur den Codeblock abarbeiten... aber nur alle 10 Sekunden. Den Rest macht er nur im Execute die Schleife. (Leerlauf) Warum ist das unschön? Ein Thread läuft doch sowieso im Execute im Kreis und macht immer das Gleiche.
Weil der Thread alle 100ms aufgeweckt wird statt alle 10 Sekunden. Jedes Aufwecken verbrät etwas CPU-Zeit. Dazu kommt noch als weiterer Nachteil die 100ms-Latenz beim Beenden. Letztlich kannst du hier stufenlos zwischen zwei Übeln wählen: kleinere Warteintervalle und damit kleinere Latenz aber dafür höhere CPU-Verschwendung, oder höhere Warteintervalle und damit weniger CPU-Verschwendung aber dafür größere Latenz.

Beides ist aber völlig unnötig, weil das Betriebssystem in Form von Events bereits eine perfekte Lösung anbietet.
  Mit Zitat antworten Zitat