有没有办法在执行一些昂贵的操作时不阻塞PyGTK?我知道线程可以工作,但它需要大量的代码和设置。
谢谢,
发布于 2011-09-16 02:16:24
在PyGTK中设置后台线程是not all that difficult。
发布于 2011-09-22 15:46:06
在pygtk中,线程并不是一个好的选择。只需通过执行以下操作来检查主循环中的事件,并让它完成自己的工作:
while my_operation_running:
<my code>
while gtk.events_pending():
gtk.main_iteration()或者调整您昂贵的操作,使其可以使用
glib.idle_add(function)每次主循环没有事情要做时,它会调用" function ",只要确保function跟踪它的进程,并且在每次调用中只进行一次迭代即可。
发布于 2011-09-27 17:07:45
避免使用线程,它们在PyGTK中根本不能很好地工作。一些替代方案:
与其通信
Twisted是一个很棒的联网类库,它是完全非阻塞的,并且可以很好地与PyGTK主循环集成,请考虑使用它。
https://stackoverflow.com/questions/7435419
复制相似问题