是否可以使用PyQt5更新带有并发期货ProcessPoolExecutor的QProgressDialog?

时间:2018-01-31 16:14:01

标签: python-3.x concurrency multiprocessing pyqt5

我正在尝试使用PyQt5为我的一些Python脚本创建一个GUI。

我有兴趣在单独的进程(而不是线程)上运行一系列任务。我一直在使用并发期货ProcessPoolExecutor来执行作业。我尝试使用concurrent.futures.as_completed()中的迭代器更新我的QProgressBar中的值。

def join(self):
    for fut in concurrent.futures.as_completed(self._tasks):

        try:            
            self.results.put(fut.result())
            self.dialogBox.setValue(self.results.qsize())

        except concurrent.futures.CancelledError:
            break

然而,似乎我的方法似乎阻止了gui,即使工作正在另一个进程上运行。

有可能吗?

0 个答案:

没有答案