【发布时间】:2013-11-04 14:20:08
【问题描述】:
情况:
我是 C#/JS 开发人员,我是 Python 新手。 我正在使用 Python 2.7 和 PyQT 4 开发应用程序
在我的主窗口中,我正在调用一个至少需要 15 秒才能执行的方法。
这个方法阻塞了我的主线程,这对我来说是个问题,因为我想要用户 即使程序正在运行计算,也能够移动窗口。
所以我考虑过使用线程,但我希望能够在线程有时收到通知 完成了刷新窗口数据的工作。
如果我在创建的线程中调用一个新函数,它将创建一个新线程并且它 不允许从不同于主线程的线程修改 QT GUI。
问题:
有没有办法启动一个新的线程(不是进程),它会运行一个方法并调用另一个方法 进程结束后的主线程?
显然,我希望能够与 JavaScript.jQuery.ajax() 在 Python 环境。
【问题讨论】:
-
由于 Python 的Global Interpreter Lock,您可能会收到很多建议使用单独的进程而不是线程。你的函数做什么,请求数据或执行计算?
-
我的功能是一个网络扫描程序,它运行 MSDOS 命令
net view并返回计算机列表(主机名和 IP 地址 (socket.gethostbyname(hostname))。我尝试使用池,但我使用的池创建了一个新进程和一个新的“主窗口”
标签: python multithreading qt