Einzelnen Beitrag anzeigen

Jim Carrey
(Gast)

n/a Beiträge
 
#50

AW: Code vom Thread in einen Timer umziehen?

  Alt 25. Okt 2016, 19:04
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.

Geändert von Jim Carrey (25. Okt 2016 um 19:09 Uhr)
  Mit Zitat antworten Zitat