2014-01-18 22 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