Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Delphi TThread.Queue landet nicht in der Queue (https://www.delphipraxis.net/179193-tthread-queue-landet-nicht-der-queue.html)

Der schöne Günther 19. Feb 2014 18:14

AW: TThread.Queue landet nicht in der Queue
 
Nur wie gesagt, ich bin da jetzt kein Spezialist für, aber je nachdem, wie "async"-verdorben man schon ist und wie oft man so etwas macht, wäre es vielleicht besser, sich einmal so einen Thread anzulegen, der dann dafür immer mittels Event aufgeweckt wird. Vielleicht noch den "Delay", wann es reingequeued wird, einstellbar machen :stupid:

Aber ganz ehrlich, ja, so mache ich das auch :wink:

Delphi-Quellcode:
Application.OnIdle
habe ich mir noch nicht angeschaut. Gibt das vielleicht noch etwas tolles her?

himitsu 19. Feb 2014 19:03

AW: TThread.Queue landet nicht in der Queue
 
Ja, der Code ist halt schön kurz/einfach.

Aber dafür wird das auch sehr selten, wenn überhaupt, aufgerufen.

Der schöne Günther 3. Apr 2014 10:58

AW: TThread.Queue landet nicht in der Queue
 
Zitat:

Zitat von Sir Rufo (Beitrag 1248593)
Eventuell suchst du ja so was

Ich finde deine Implementation von
Delphi-Quellcode:
TerminatedSet
verdient nochmal besondere Beachtung: Der Thread schläft und wartet auf das Event. Ruft man
Delphi-Quellcode:
meinThread.Terminate()
auf passiert nichts, da er schläft. Das Setzen des Events weckt ihn auf und er merkt, dass seine Zeit gekommen ist.

Delphi-Quellcode:
TThread.Terminate()
ist nicht virtuell, wohl aber die undokumentierte Methode
Delphi-Quellcode:
TerminatedSet()
. Eigentlich ein Musterbeispiel (für TThread und für fehlende Doku an sich 8-))


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:03 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz