为了账号安全,请及时绑定邮箱和手机立即绑定

Python - PyQt:QThread 的内存问题

Python - PyQt:QThread 的内存问题

慕桂英4014372 2021-08-17 10:38:11
我想构建一个 Qt 接口来控制相机采集。我想要什么: 在进入硬件通信之前,我正在测试一个控制“假相机”的 GUI,一个连续循环,如果启动,每 100 毫秒给出一个随机图像。图像采集在单独的线程中运行,以便用户可以与 GUI 进行交互。用户可以通过按钮开始和停止采集。我 想怎么做:我的第一次尝试是简单地 istanziate aQThread并调用该run()方法,然后该方法将包含一个无限循环,其中单个图像采集由 a 交错QThread.sleep(0.1)。我注意到在停止并重新启动线程后,程序开始滞后并在一段时间后崩溃。通过阅读周围的一些帖子和主要的Qt 网页,我了解到做我想做的事情的最好方法是:子类 aQObject来创建一个工人。实例化这个工作对象和一个QThread. 将工作线程移动到新线程。此外,按照这篇文章中的想法,我添加了一个QTimer对象来无限期地迭代线程内的工作线程,并且我实现了一个active标志,如果它设置为False. 这个解决方案在开始时似乎有效。我可以根据需要多次开始、停止和重新开始采集。问题:1) 当相机未获取时,CPU 总是占用相当多的资源(在我的情况下,大约为 30%,根据 Windows 任务管理器)。2)有时,在开始采集后,内存开始被填充,就像每个新图像都分配在新内存中(我猜它应该被覆盖),直到程序变得无响应然后崩溃。下图是发生这种情况时我在任务管理器中看到的:红色箭头对应于采集开始的时间。我哪里做错了?这是正确的方法吗?
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 440 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号