如何在线程中实现精度为1毫秒的延时,且不占用CPU

wanjinball 2005-09-24 06:40:53
需要在线程中实现一个延时,该延时需要精确到1毫秒,而且要像Sleep似的不占用CPU资源。如果使用获取CPU频率的办法,就会使得CPU占用率达到100%,肯定不能使用的。请各位大拿教我一种办法,谢谢了!
...全文
365 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Rccl 2005-10-06
  • 打赏
  • 举报
回复
理论上select函数应该可以的,
timeout.tv_usec = 1000;//microseconds
timeout.tv_sec = 0
select(1,NULL,NULL,NULL,&timeout);
但是unix内核会将超时值向上舍入为10ms的倍数,也就是最小延迟为10ms.不知道windows下怎么样
hundlom 2005-10-01
  • 打赏
  • 举报
回复
用select()函数试试,在unix下是可以的。
WYlslrt 2005-10-01
  • 打赏
  • 举报
回复
修改时钟定时器,
FengYuanMSFT 2005-10-01
  • 打赏
  • 举报
回复
Not sure.

But you may need a high resolution time and work in kernel mode.
一条晚起的虫 2005-09-25
  • 打赏
  • 举报
回复
不会
等高手
wanjinball 2005-09-24
  • 打赏
  • 举报
回复
Sleep当然不够了,你试试Sleep(1),看看等待多长时间才返回!
Featured 2005-09-24
  • 打赏
  • 举报
回复
你是觉得sleep的精度不够?

2,640

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 硬件/系统
社区管理员
  • 硬件/系统社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧