有什么方法可以精确实现睡眠1毫秒(甚至更小)

bdove 2004-08-06 12:58:45
在while()中,想每循环一次,睡眠1ms,如果用Sleep(1);测试发现,实际会睡眠到15~16ms左右。不知道哪个有高招呀???
...全文
433 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
freeinsky 2004-08-08
  • 打赏
  • 举报
回复
可以的,在VCKBASE上有一篇文章说明了,在多媒体应用上的时间的精确很重要,可以在隐藏API当中找到
stevecrisewu 2004-08-06
  • 打赏
  • 举报
回复
多媒体定时器,
但是在windows下,很难精确到1ms的
bdove 2004-08-06
  • 打赏
  • 举报
回复
因为有多个线程处理很大的任务,如果哪一个线程独占CPU的话,其他没法工作;
如果每个线程处理(while())一次后,就睡眠1ms的话,就不会影响其他线程的工作;
如果时间太长(Sleep(1)约= 16ms),这样一来,循环的次数每秒就不到100次,性能太低了。所以才想要更精确的睡眠,来不是延时阴塞的等待.
ggw007 2004-08-06
  • 打赏
  • 举报
回复
你的这个问题要到驱动开发板块解决,
我看还是找个别的解决办法吧,非要1MS吗?
写驱动可不是那么好玩的
bdove 2004-08-06
  • 打赏
  • 举报
回复
我是想能真正的睡眠,同时要不影响其他线程的正常运行!Sleep()就能做到,只是延的时间不是我想要的!
bdove 2004-08-06
  • 打赏
  • 举报
回复
上面各位的方法是能延时到一定的数量级,但是,在我机器上测试,CPU一直会是占满的呀,我可不希望是这样子呀,如果是这样子,其他线程还能有效的处理吗?
nKannan 2004-08-06
  • 打赏
  • 举报
回复
从根本来说,Window平台无法实现绝对的时间精确。这也就是实时操作系统和一般操作系统的区别。在Windows平台,由于任务调度的问题,Sleep(1)却等几十MS很正常。取时间比较也一样,虽然取到的时间最小精度是us,但是即使你连续取两次,可能也隔了几十MS了。
dawnwang 2004-08-06
  • 打赏
  • 举报
回复
用gps天线,再用个B码,同步你的系统时间,保证很精确,呵呵,不过有点贵.
Mr-Chen 2004-08-06
  • 打赏
  • 举报
回复
http://community.csdn.net/Expert/topic/3034/3034471.xml?temp=8.344668E-02

有很多方法
carbon107 2004-08-06
  • 打赏
  • 举报
回复
同意laiyiling的
Kudeet 2004-08-06
  • 打赏
  • 举报
回复
http://blog.csdn.net/laiyiling/archive/2004/08/03/60194.aspx
ShaftWhy 2004-08-06
  • 打赏
  • 举报
回复
无论如何,Windows都是没有办法绝对精确的,因为Windows不是实时操作系统。分配给当前进程(线程)的时间片是没有办法控制的。
micty 2004-08-06
  • 打赏
  • 举报
回复
向楼上的同志们学习!!!!!~
lixiaosan 2004-08-06
  • 打赏
  • 举报
回复
http://www.codeguru.com/Cpp/G-M/multimedia/timers/article.php/c1581

http://www.vchelp.net/vchelp/archive.asp?type_id=73&class_id=1&cata_id=2&article_id=447&search_term=
basboy 2004-08-06
  • 打赏
  • 举报
回复
int now=::GetTickCount();
while(::GetTickCount()<(now+1));


sorry:)
basboy 2004-08-06
  • 打赏
  • 举报
回复
int now=::GetTicks();
while(::GetTicks()<(now+1));
无敌魔仙 2004-08-06
  • 打赏
  • 举报
回复
用多媒体 计时器 Multimedia Timers(CreateWaitableTimer)

Multimedia timer services allow applications to schedule timer events with the greatest resolution (or accuracy) possible for the hardware platform. These multimedia timer services allow you to schedule timer events at a higher resolution than other timer services.

These timer services are useful for applications that demand high-resolution timing. For example, a MIDI sequencer requires a high-resolution timer because it must maintain the pace of MIDI events within a resolution of 1 millisecond.

Applications that do not use high-resolution timing should use the SetTimer function instead of multimedia timer services. The timer services provided by SetTimer post WM_TIMER messages to a message queue, while the multimedia timer services call a callback function. Applications that want a waitable timer should use the CreateWaitableTimer function.
holyeagle 2004-08-06
  • 打赏
  • 举报
回复
http://community.csdn.net/Expert/topic/3240/3240035.xml?temp=5.413234E-03
ontime是无法得到准确的时间间隔,它是根据它的所得到的时间片决定的
iCoder_Me 2004-08-06
  • 打赏
  • 举报
回复
mark
huiker 2004-08-06
  • 打赏
  • 举报
回复
学习了
加载更多回复(5)
背景:睡眠唤醒是被打断进入睡眠的短暂清醒期。 过度的睡眠唤醒与许多负面影响有关,包括白天嗜睡和睡眠障碍。 多导睡眠图记录的高质量注释对于睡眠唤醒障碍的诊断至关重要。 目前,睡眠唤醒主要由人类专家通过手动查看数百万个数据点进行注释,这需要相当多的时间和精力。 方法:我们使用来自两个独立数据集的 2,994 个人的多导睡眠图 (i) PhysioNet Challenge 数据集 (n=994) (ii) 用于模型训练 (60%)、验证 (15%) 和测试 (25%) 的睡眠心脏健康研究数据集 (n=2000)。 我们开发了一种深度卷积神经网络方法 DeepSleep,以自动分割睡眠唤醒事件。 我们的方法在多个时间尺度上捕获了生理信号之间的长程和短程相互作用,从而能够检测睡眠唤醒。 进一步应用了一种通过随机交换相似生理通道的新增强策略来提高预测精度。 结果:与睡眠研究中的其他计算方法相比,DeepSleep 具有准确的特征(接收器操作特征曲线下面积为 0.93,精确召回曲线下面积为0.55)、高分辨率(5 毫秒分辨率)和快速(每个睡眠记录 10 秒)描绘睡眠唤醒。 在 2018 年 PhysioNet 挑战赛中对大型保留数据集 (n=989) 进行评估时,该方法在分割非扁平唤醒方面排名第一。 我们发现 DeepSleep 提供了比人类详细的描述,尤其是在唤醒和非唤醒事件之间的低置信度边界区域。 这表明计算机注释是人类注释的补充,并有可能推进当前的二元标签系统和睡眠唤醒评分标准。解释:所提出的深度学习模型在检测睡眠唤醒方面取得了最先进的性能。 通过引入标注置信概率,该模型将为睡眠障碍的诊断和睡眠质量的评估提供准确的信息。 资金声明:这项工作得到了 NSF-US14-PAF07599(职业:在不可见扰动下预测蛋白质磷酸化动力学的在线服务 NSF)、AWD007950(帕金森病语音中的数字生物标志物美国帕金森病协会)、密歇根大学 O 'Brien Kidney Translational Core Center, 19AMTG34850176(美国心脏协会和 Amazon Web Services3.0 数据资助组合:人工智能和机器学习培训资助)和 Michael J. Fox 基金会 #17373。利益声明:YG 收到 Eli 的个人付款Lilly and Company、Genentech Inc、F. Hoffmann-La Roche AG 和 Cleerly Inc; 持有 Cleerly Inc 和 Ann Arbor Algorithms Inc 的股权; 获得默克公司的研究支持作为研究合同和 Ryss Tech 作为无限制捐赠。道德批准声明:不需要。

16,473

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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