我试图对外部资源进行监控(一个国家仪器采集系统产生我的程序读取的点),同时保持Gui的响应。为此,我在监控循环的每个周期调用 QCoreApplication :: processEvents()。 当我用鼠标光标拖动主窗口时,循环停止,直到我释放它,导致数据丢失。我相信这种行为可以在任何 QCoreApplication :: processEvents(在进程密集循环中调用以保持gui响应。
有没有办法解决这个问题,还是应该以其他方式实施监控周期?
答案 0 :(得分:1)
您应该有一个单独的GUI Thread
和Worker Thread
。每个Qt程序在启动时都有一个称为GUI thread
的线程。 Qt GUI必须在此线程中运行。 worker thread
用于从主线程卸载处理工作(在您的情况下监视外部资源)。
从链接中了解有关Qt threading Basics的更多信息。