我正在编写一个GUI应用程序,它定期通过Web连接检索数据.由于此检索需要一段时间,因此会导致UI在检索过程中无响应(无法将其拆分为较小的部分).这就是为什么我想将Web连接外包给一个单独的工作线程.
[是的,我知道,现在我有两个问题.]
无论如何,应用程序使用PyQt4,所以我想知道更好的选择是什么:使用Qt的线程还是使用Python threading模块?每个的优点/缺点是什么?或者你有一个完全不同的建议?
编辑(重新赏金):虽然在我的特定情况下的解决方案可能会使用像Jeff Ober和LukášLalinský建议的非阻塞网络请求(所以基本上将并发问题留给网络实现),我仍然喜欢更多对一般问题的深入回答:
使用PyQt4(即Qt)线程优于本机Python线程(来自threading模块)的优点和缺点是什么?
编辑2:谢谢大家的答案.虽然没有100%的协议,但似乎普遍认为答案是"使用Qt",因为它的优点是与库的其余部分集成,同时没有造成任何真正的缺点.
对于任何想要在两个线程实现之间进行选择的人,我强烈建议他们阅读这里提供的所有答案,包括abbot链接到的PyQt邮件列表线程.
我考虑了赏金的几个答案; 最后,我选择了abbot作为非常相关的外部参考; 然而,这是一个近距离的电话.
再次感谢.