Fensterprozeduren, Message Queues und Threads...
Von: Marcel Müller (news.5.maazl@spamgourmet.org) [Profil]
Datum: 22.04.2007 16:22
Message-ID: <462b6f8f$0$23141$9b4e6d93@newsspool1.arcor-online.net>
Newsgroup: de.comp.os.os2.programmer
Datum: 22.04.2007 16:22
Message-ID: <462b6f8f$0$23141$9b4e6d93@newsspool1.arcor-online.net>
Newsgroup: de.comp.os.os2.programmer
Hallo, ich bin in Sachen GUI nicht sonderlich bewandert deshalb folgende Fragen. Einige habe ich schon versucht zu beantworten. Aus welchem Thread werden denn die Fensterprozeduren aufgerufen, wenn ich WinPostMessage verwende? Vermutlich der, der WinDispatchMsg aufruft. Aber daraus ergibt sich die nächste Frage: In welche Messagequeue wird eine Message bei WinPostMessage geschrieben? Ich vermute es gibt eine Assoziation zum Fenster-Handle. Nur wie kommt die zustande? WinCreate*Window kennt keinen Queue-Parameter. Wie kann ich erreichen, dass zumindest bestimmte (User-)Messages in einem eigenen Thread verarbeitet werden, weil deren Bearbeitung absehbar länger dauert? Worauf muss ich achten, wenn auf einmal mehrere Threads die gleiche Fensterprozedur aufrufen? Ist die komplette Win*-API thread safe? Ich kenne Programmcode, wo in einigen (aber nicht allen) Threads WinInitialize() und WinCreateMsgQueue() aufgerufen werden. Die gelieferten Handles werden aber in keinster Weise verwendet. Was bewirkt das dann? Man sieht schon, ich habe das ganze Prinzip nicht verstanden. Und ich meide es auch, wenn es geht, da es ziemlich undurchschaubare Abhängigkeiten im Programmcode erzeugt. Mir scheint, das war mal als rudimentärer Thread-Emulator gedacht, als es selbige noch nicht gab. Marcel[ Auf dieses Posting antworten ]
Antworten
- Carsten Arnold (23.04.2007 11:29)
- Marcel Müller (23.04.2007 19:36)
- Heebert Rosenau (25.04.2007 00:10)
- Marcel Müller (25.04.2007 11:07)
- Heebert Rosenau (25.04.2007 15:37)
- Marcel Müller (25.04.2007 17:56)
- Carsten Arnold (25.04.2007 07:39)
- Heebert Rosenau (25.04.2007 11:47)
- Heebert Rosenau (24.04.2007 07:20)
- Carsten Arnold (25.04.2007 07:39)
- Heebert Rosenau (23.04.2007 18:36)
