多线程处理框架

QRunnable 多线程处理框架:Worker 回调执行 + WorkerSignals 信号回主线程。

概述

quatm/GUI/widgets/helper_workers.py(及同构的 browser_workers.py)提供多线 程处理框架Worker 继承 QRunnable,把任意回调函数放进 QThreadPool 线程池 执行,并通过 WorkerSignals 以 finished / error / result / progress 等信号把结果 送回 GUI 主线程。

  • browser_workers:供实验浏览器(实验队列、循环器等)使用;
  • helper_workers:供对准/辅助等工具使用。

组件

组件说明
WorkerQRunnable 工作线程:设置、执行与收尾(含异常处理)
WorkerSignals工作线程可发出的信号:finished / error / result / progress 等

用法

from quatm.GUI.widgets.helper_workers import Worker

worker = Worker(fn=long_running, args=(...), kwargs={...})
worker.signals.result.connect(on_result)   # 主线程槽函数
worker.signals.error.connect(on_error)
QThreadPool.globalInstance().start(worker)

更完整说明见 后台工作线程