2014-01-18 24 views
0

當編寫使用pyFLTK多線程應用程序,我發現了一個奇怪的問題:當我打電話Fl.wait()那麼所有線程都停止,直到另一個FLTK事件出現。作爲一種變通方法while Fl.check(): time.sleep(0.01)的作品,但我更喜歡使用催產素只是Fl.run()pyFLTK功能`Fl.wait()`塊的所有線程

我使用pyfltk-1.3.0和python-2.7.6

回答

0

嘗試調用Fl::lock(); /* your code here */; Fl::unlock();

併發編程FLTK 1.3基於應用這短短的文章中解釋說:http://www.fltk.org/doc-1.3/advanced.html#advanced_multithreading

+0

如果我正確理解該文章,然後FL ::鎖()和F1 ::解鎖()只具有從多個線程訪問FLTK功能時使用。我所做的只是運行一個單獨的線程來處理FLTK和另一個完全獨立的線程(而True:print('X'))。當我使用Fl.run()時,第二個線程停止執行。 – cube

+0

這確實是一個奇怪的行爲。我從來沒有這樣的問題與FLTK,所以不能真正幫助...... :( – DejanLekic