Forum: Sonstige Fragen zu Delphi
by himitsu,
22. Jan 2018
Ich bau auch ab und an mal ein Sleep(0); ein, z.B. wenn ich direkt nach TThread.Create den Thread gestartet haben möchte.
Gibt auch irgendeinen Assemblerbefehlt dafür, aber den vergesse ich eh immer.
Sleep(0) sagt ja einfach nur "so, ich bin fertig ... den Rest meines TimeSlots brauch ich nicht mehr. Also Windows, du kannst jetzt sofort erstmal die anderen Threads behandeln".
Den alten...
Forum: Sonstige Fragen zu Delphi
by himitsu,
22. Jan 2018
Das nicht, aber das Sleep friert immer wieder kurz alles ein und sorgt auch dafür, dass "tu was" länger braucht. :stupid::zwinker:
Eine reine Warteschleife, die nur Messages verarbeitet, die garf gern kurz einfrieren, wenn gerade keine Messages vorhanden sind.
Gerade das wurde in dem Delay von Hagen optimiert, also statt einen Sleep wird dort mit WaitFor auf den Timeout gewartet oder bis eine...
Forum: Sonstige Fragen zu Delphi
by himitsu,
22. Jan 2018
Aber Sleep ist doch grade ein Befehl, mit dem Man das Programm absichtlich "einfriert. :lol:
Delay ist eine "eigene" Implementation, die Delphi nicht kennt.
Es verbindet Sleep mit einem Application.ProgressMessages, bzw. PeekMessage+DispatchMessage, damit der Code wartet, aber währenddessen dennoch Messages verarbeitet werden können.
Forum: Sonstige Fragen zu Delphi
by himitsu,
22. Jan 2018
Delay http://www.delphipraxis.net/6620-delay.html :stupid:
Aber es macht auch keinen Sinn, den einmaligen Durchlauf noch künstlich mit einem Sleep/Delay zu verlängern.
Wenn wirklich viel zu tun ist, dann darf das Programm gern mal mit 100% laufen.
Aber wie die Messages behandelt werden ist letztendlich egal, wenn die Position wohl eher das Problem ist.