在对话框中显示系统当前时间,卡顿的原因是什么解决方法
在对话框中显示系统当前时间,卡顿的原因是什么
是一个mfc的比较复杂的工程,莫名其妙的卡顿,不知道什么原因,主要还是同样的程序在不同pc上运行有的卡有的不卡,同样的代码在一个pc上有时卡有时不卡,出问题的时候第一点就是在主对话框上显示的系统当前时间的读秒有卡顿现象,有时跳2秒有时跳4、5秒。有没有遇到这问题的,指导小弟一下
------解决思路----------------------
因为你说的是一个复杂的MFC程序, 那么很有可能是你的程序的其它部分占用了UI线程, 做了耗时操作. 导致界面卡了.
------解决思路----------------------
‘
检查下程序,看看有没有哪个线程很占cpu,从而导致定时器1s后得不到CPU使用权?另外,你这种 跳秒 的情况,是否伴随着界面卡?
------解决思路----------------------
UI线程就是拥有消息循环的那个线程.
界于你是MFC, 并且喜欢使用timer, 那么怀疑你的程序中不只有一个timer在跑, 而某个timer中执行的东西又特别耗时, 导致界面或者说整个UI线程会卡那么一段时间.
所以你需要查找的地方就是TIMER 和一些消息响应, 看有没有执行耗时的操作
------解决思路----------------------
感觉楼主的timer还是受到阻碍程序的影响了,因为timer是一个系统事件,所以会受同一线程的程序影响。修改最直接的办法就是把阻碍的代码拉到一个线程里去处理。就是把UI逻辑和处理逻辑分开。
最后,卡顿不是你timer的问题。
------解决思路----------------------
Windows程序用的是消息循环机制,包括你的定时器CTimer的控制,都是通过消息队列交给程序处理的,因此如果程序中出现占用机时超过1S的片段,就完全有可能出现你的这种情况,同时也说明你的程序结构设置不合理。我认为你以秒记时显示时,定时器检测间隔完全可以大于500MS
是一个mfc的比较复杂的工程,莫名其妙的卡顿,不知道什么原因,主要还是同样的程序在不同pc上运行有的卡有的不卡,同样的代码在一个pc上有时卡有时不卡,出问题的时候第一点就是在主对话框上显示的系统当前时间的读秒有卡顿现象,有时跳2秒有时跳4、5秒。有没有遇到这问题的,指导小弟一下
------解决思路----------------------
因为你说的是一个复杂的MFC程序, 那么很有可能是你的程序的其它部分占用了UI线程, 做了耗时操作. 导致界面卡了.
------解决思路----------------------
‘
检查下程序,看看有没有哪个线程很占cpu,从而导致定时器1s后得不到CPU使用权?另外,你这种 跳秒 的情况,是否伴随着界面卡?
------解决思路----------------------
UI线程就是拥有消息循环的那个线程.
界于你是MFC, 并且喜欢使用timer, 那么怀疑你的程序中不只有一个timer在跑, 而某个timer中执行的东西又特别耗时, 导致界面或者说整个UI线程会卡那么一段时间.
所以你需要查找的地方就是TIMER 和一些消息响应, 看有没有执行耗时的操作
------解决思路----------------------
感觉楼主的timer还是受到阻碍程序的影响了,因为timer是一个系统事件,所以会受同一线程的程序影响。修改最直接的办法就是把阻碍的代码拉到一个线程里去处理。就是把UI逻辑和处理逻辑分开。
最后,卡顿不是你timer的问题。
------解决思路----------------------
是一个mfc的比较复杂的工程,莫名其妙的卡顿,不知道什么原因,主要还是同样的程序在不同pc上运行有的卡有的不卡,同样的代码在一个pc上有时卡有时不卡,出问题的时候第一点就是在主对话框上显示的系统当前时间的读秒有卡顿现象,有时跳2秒有时跳4、5秒。有没有遇到这问题的,指导小弟一下
Windows程序用的是消息循环机制,包括你的定时器CTimer的控制,都是通过消息队列交给程序处理的,因此如果程序中出现占用机时超过1S的片段,就完全有可能出现你的这种情况,同时也说明你的程序结构设置不合理。我认为你以秒记时显示时,定时器检测间隔完全可以大于500MS