Hallo,
Und bitte hau mich nicht dafür
ich muss dich leider hauen. Die
TForm1.LongDelay
und vorallem deren Aufruf aus
TArbeiterThread.Execute
geht einfach garnicht. Wozu das unbenannte Event, welches nur in der Methode existiert? Dann wird
Application.ProcessMessages
aus einem Thread aufgerufen, was mitunter das Potenzial hat, die gesammte Anwendung zuzerlegen.
Wenn man in einem Thread unter ca. 20ms (siehe unten) warten will, benutzt man sleep. Will man länger warten benutzt man eines der WaitFor-Angebote vom System, unter benutzen eines Terminate-Events.
Zu den 20ms: Den genauen Wert weis ich aktuell nicht. Aber es gibt bei den WaitFor... beim TimeOut eine untere Grenze, bei deren Unterschreitung die Zeit nicht mehr eingehalten wird.
Seid nicht so hart zu mir. Ich sagte doch das war einfach nur dahin geklatsch.
Zum Thema Delay und Thread, guck mal hier:
Delay von negaH
Zitat:
Welches Delphi nutzt Du?
Die Demo hab ich mit XE2 gemacht, habe aber auch XE3.
Zitat:
Und warum keine Message senden wenn es was anzuzeigen gibt?
Wenn die Oberfläche Zeit hat was anzuzeigen wird sie das auch tun, da kann man sich das ganze Polling/Timer-Zeug sparen.
Dann brauche ich den zweiten Thread aber trotzdem. Denn er wäre es ja, der die Message sendet.