在vc中如何实现延时? 请问在vc中如何实现延时时间t,不要占用大量的cpu资源(不要用sleep,for()之类的) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 WaitForSingleObjectWaitForMultipleObjectsWaitForMultipleObjectsEx 请问你想要干嘛, 如果仅仅希望线程延时用 Sleep 足矣, 还想做其他的? 什么呢? 不能SLEEP,它会使CPU时间浪费的 谁讲 Sleep 会浪费 CPU 时间?你实际观察一下好不好?Sleep 就是让当前线程放弃CPU时间片. 使用SetTimer(1,n,NULL);在OnTimer中停止记时器 1: sleep 最好!(一般用)2:GetTickCount() 比较准确,CPU不是很耗费3:多媒体记时,很好,很精确,但CPU巨耗! Sleep函数仅仅是当前的线程不被执行,看似占用处理器时间其实对于其他的进程(线程)完全没有占用感觉 如果你的程序是单线程的用下面的void Delay(long count){MSG Msg; for(int i=0;i<n*100;i++)while(PeekMessage(....)) { Transform(&Msg); Dispatch(&Msg); }}具体数值自己试? 实际上用Sleep()是合适的,它是起到暂时挂起所在线程的作用,而在这个时候CPU会执行其他的动作的.根本不会消耗多少CPU资源.说不定你会觉得其他的程序运行得更快乐,呵呵. 用sleep(x) 并不会占用cpu的, 如果程序是单线程sleep()就使得该程序完全停止执行!不能起到延时的作用。还是用SetTimer()好点。 看看操作系统内核调度篇,就会知道Sleep延时是最好的通过SetTimer来定时机制来延时,一是不方便(异步),二是线程仍旧在运行,占用资源想不明白为什么不用Sleep 年终了,讨论下年终奖 --==--- 顺便来点图片你懂的 CTreeCtrl的checkbox问题 请教VC模拟键盘输入,请各位不吝赐教 WIN2k,XP下如何锁定键盘端口,屏蔽键盘响应 為什麼用 OLEDB SDK 的 IRowset 對象不能取得 sql 語句中用 AS 改過列名或直接復值的列的值? 哪里有下载ACTIVESKN的*.SKN文件的? 网页下载 没分的烦恼 win98/win2000双系统,“传奇”不能运行 求大虾推荐windbg相关的书籍,谢谢。 改变控件大小的新问题。 一个关于CTreeCtrl的问题
WaitForSingleObject
WaitForMultipleObjects
WaitForMultipleObjectsEx
2:GetTickCount() 比较准确,CPU不是很耗费
3:多媒体记时,很好,很精确,但CPU巨耗!
void Delay(long count)
{
MSG Msg;
for(int i=0;i<n*100;i++)
while(PeekMessage(....))
{
Transform(&Msg);
Dispatch(&Msg);
}
}
具体数值自己试?
不能起到延时的作用。还是用SetTimer()好点。
通过SetTimer来定时机制来延时,一是不方便(异步),二是线程仍旧在运行,占用资源想不明白为什么不用Sleep