Einzelnen Beitrag anzeigen

BrightAngel

Registriert seit: 13. Mär 2007
130 Beiträge
 
#29

AW: Form in neuem Thread laufen lassen

  Alt 23. Apr 2017, 15:00
Hey

Da mich dieses Thema auch schon lange interessiert hat; man könnte sich bei solchen Wrapperklassen auch noch einen weiteren Vorteil sichern: Das Verwenden mehrerer Threads. Das Argument "Synchronisierung" kann man damit tatsächlich auch erschlagen. Windows bietet von Haus aus schon eine Messagequeue für die Nachrichtenbehandlung der Fensterereignisse an (klar, muss ja intern auch irgendwie funktionieren). Das MSDN schreibt dazu:
Zitat:
The function fails if the specified thread does not have a message queue. The system creates a thread's message queue when the thread makes its first call to one of the User or GDI functions. For more information, see the Remarks section.
Man könnte die PostThreadMessage Funktion also benutzen, um kustomisiert auf bestimmte Threadereignisse zu reagieren; oder sehe ich das falsch? Mir schwebt sowas wie ein "Callback" für die WndProc vor. Man registriert eine Callback Funktion auf einen Msg -Code, sodass man dann einfach jedes Mal, wenn man der GUI etwas mitteilen möchte, einfach PostThreadMessage aufruft (oder wenn man das an ein hwnd binden möchte, eben SendMessage /PostMessage ) und die Synchronisierung einfach über Windowsboardmittel durchführt. Wisst ihr was ich meine? Macht das für euch auch Sinn? Ich denke, dass man so zum Beispiel ein Log in einem Memo führen könnte, da die Messages ja immer hübsch einzeln "reinblubbern" - und das egal wie viele Threads im Hintergrund beteiligt sind.

Brighty

P.S. Habe gerade interessehalber diesen Artikel gelesen. Vielleicht interessiert er in diesem Kontext den ein oder anderen. (Falls jemand sprachliche Unterstützung möchte, kann ich btw. gerne übersetzend aktiv werden...)
Do you have the email of god??? --- I have to tell him that I'm happy to be born!

Geändert von BrightAngel (23. Apr 2017 um 15:25 Uhr)
  Mit Zitat antworten Zitat