Seite 1 von 1
Thread + DesktopMouseX()
Verfasst: 18.08.2013 18:22
von kevv
Code: Alles auswählen
;PB 5.20 beta 11 (86)
;Linux Mint 14
;Theard-Sicheres Executable an
OpenWindow(10, 0, 0, 220, 220, "CanvasGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
CanvasGadget(0, 10, 10, 200, 200 ,#PB_Canvas_Keyboard)
Procedure Thread(d)
Delay(1000)
Debug "Start theard "
Repeat
NeuX=DesktopMouseX()
NeuY=DesktopMouseY()
Debug NeuY
Delay(10)
ForEver
EndProcedure
Thread = CreateThread(@Thread(),0)
Repeat
Event = WaitWindowEvent()
Until Event = #PB_Event_CloseWindow
Programm stürzt ab entweder sofort oder nachdem ich mit der Maus über das Canvasgadget gleite
mit der Meldung < Programm abgebrochen (durch eine externe Library) >
Bug oder mein Fehler ?
Re: Theard + DesktopMouseX()
Verfasst: 18.08.2013 20:52
von MVXA
kevv hat geschrieben:Bug oder mein Fehler ?
Threads sind sehr kompliziert und selten eine gute Idee. Das ist ein sehr komplexes Themengebiet. Sie bieten sich nur für wenige Problemstellungen an, werden häufig an den falschen Stellen eingesetzt.
Ohne jetzt mit dem GDB durch das Programm gesprungen zu haben behaupte ich einfach mal, dass der Teil der Bibliothek nicht sicher für Threads ist. Die Behauptung wird durch diese Meldung gestützt:
Code: Alles auswählen
[xcb] Unknown request in queue while dequeuing
[xcb] Most likely this is a multi-threaded client and XInitThreads has not been called
[xcb] Aborting, sorry about that.
purebasic_compilation0.out: xcb_io.c:179: dequeue_pending_request: Zusicherung »!xcb_xlib_unknown_req_in_deq« nicht erfüllt.