WaitWindowEvent() in einem thread.

Windowsspezifisches Forum , API ,..
Beiträge, die plattformübergreifend sind, gehören ins 'Allgemein'-Forum.
es_91
Beiträge: 410
Registriert: 25.01.2011 04:48

WaitWindowEvent() in einem thread.

Beitrag 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?
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: WaitWindowEvent() in einem thread.

Beitrag 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
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Antworten