这是一个可以理解的问题QTimer
。我创建了一个QTimer()
事件,该事件每1000ms运行一次函数。只要GUI正在运行,此功能就会持续存在。因此,我在主线程(GUI线程)中使用了QTimer()
,但没有为此计时器事件创建QThread
。我的问题是:
1-在GUI线程(主线程)中使用QTimer
,是否随时影响GUI的功能?
2-建议您创建一个QThread
并在其上运行此计时器事件,否则不值得,最好节省资源。如果是,您能给我介绍如何将计时器移到QThread
吗?
如果要执行定期任务,则QTimer是最佳选择,并且QTimer的逻辑是使用Qt事件循环来检查是否触发。相反,您应该担心QTimer执行的功能,因为通常连接到信号的任何功能都不会很耗时,这是开发人员的任务。
通常,应尽可能避免使用线程,因为它们会增加复杂性并可能带来更多问题。因此,线程是替代方案的唯一原因是任务非常耗时。结论:使用或不使用线程不取决于QTimer,而是取决于您正在执行的任务。