Seite 1 von 1

WaitWindowEvent() in einem thread.

Verfasst: 21.03.2014 12:36
von es_91
Warum funktioniert das Erstellen eines Fensters, dessen WaitWindowEvent() in einem thread verarbeitet wird, nicht?
PureBasic Hilfe hat geschrieben:Eine Fenster-Ereignisschleife sollte nicht in einem Thread verarbeitet werden, da es auf OS X und Linux einige Einschränkungen gibt. Ein Debugger-Fehler wird ausgelöst.
Den Debugger-Fehler vermisse ich. Das Fenster erzeuge ich im normalen Code, den WaitWindowEvent()-Aufruf mache ich im Thread. Ergebnis: das Fenster reagiert nicht auf Eingabe, meldet "keine Rückmeldung".

Warum?

Re: WaitWindowEvent() in einem thread.

Verfasst: 21.03.2014 13:00
von ts-soft
Das Event-Handling funktioniert nur in dem Thread, in dem auch das Fenster erstellt wurde! Das ist auf jedem OS so und
hat nichts mit PB zu tun.
Aus einem anderem Thread solltest Du nur SetGadget... u. ä. nutzen, also nur die Dinge, die im Endeffekt nur eine Message
an den Messagequeque senden, aber keine Gadgets erstellen o. ä., das ist nicht Threadsafe.

Gruß
Thomas