我试图监控一个外部资源(由我的程序读取的国家仪器采集系统生成的点),同时保持Gui响应。为此,我在每个监控循环周期中调用QCoreApplication::processEvents()。 当我用鼠标拖动主窗口时,循环会暂停直到我释放它,导致数据丢失。 我认为在任何需要在进程密集型循环中调用QCoreApplication::processEvents()以保持gui响应的情况下,都会出现这种行为。
有没有办法绕过这个问题,或者应该以其他方式实现监控循环?
GUI线程
和工作线程
。每个Qt程序在启动时都有一个称为GUI线程
的线程。Qt GUI必须在此线程中运行。工作线程
用于将处理工作(在您的情况下是外部资源的监视)从主线程中卸载。