Forum: Programmieren allgemein
Delphi
by stahli,
22. Sep 2016
Huch!?
Ich habe Dein Beispiel aus #24 nachgebaut und mich anweisungsgemäß gewundert. :mrgreen:
Dort hast Du einen Timer benutzt, von Threads ist dort nichts erkennbar.
Ich habe die Demo etwas erweitert, damit man noch besser sieht, dass Application.ProcessMessages die Timer-Behandlung unterbricht und rekursiv aufruft.
Du hast doch damit angefangen!!! :stupid:
(ich habe das nur etwas...
Forum: Programmieren allgemein
Delphi
by stahli,
22. Sep 2016
In Deinem Test kommt das Programm nie dazu, die zurückgestellten Aufgaben abzuarbeiten. Es hängt sich letztlich auf und lässt sich nicht beenden.
Mein Test zeigt (besser), dass die zurückgestellten Logs später noch abgearbeitet werden (nämlich wenn keine weiteren ProcessMessages mehr dazwischen funken).
Ist ja nicht weiter wichtig, aber führt vielleicht schneller zur Erleuchtung bei...
Forum: Programmieren allgemein
Delphi
by stahli,
21. Sep 2016
Ich habe das nochmal ein wenig umgebaut.
Hier wird ProcessMessages 20 mal ausgeführt und dann 20 mal nicht mehr.
Dann wird der Timer ausgeschaltet und dadurch die ersten 20 Logs "nachgeholt".
(Anbei Projekt für XE3 + Exe)
Forum: Programmieren allgemein
Delphi
by stahli,
21. Sep 2016
Ein solcher Lock könnte so aussehen:
Flag := False;
while (not Flag) do;
Der Mainthread macht ungefähr so etwas:
repeat
TastaturAbfragen;
MausAbfragen;
EreignisseAbfragen;