社区
.NET Framework
帖子详情
Thread.Sleep() 诡异现象
wcl1986_1
2009-06-12 08:08:21
我是使用VS2008,C#。在一个项目中,Thread.Sleep(N)又一次在小于17ms时,根本不管用。
这时我同时打开了2个vs。
可是我关闭了另一个vs,迅雷后,计时再次可以小于17ms,当然也不是很准确了,但是比上次不管怎么设置不能小于17ms现象好的多。但是我再现刚才的情形(打开很多软件)情况没有重复出现。在此作为记录,不求回答,欢迎探讨。
我想可能是,有些软件对cpu竞争力强。导致我的程序计时不准确。
...全文
65
11
打赏
收藏
Thread.Sleep() 诡异现象
我是使用VS2008,C#。在一个项目中,Thread.Sleep(N)又一次在小于17ms时,根本不管用。 这时我同时打开了2个vs。 可是我关闭了另一个vs,迅雷后,计时再次可以小于17ms,当然也不是很准确了,但是比上次不管怎么设置不能小于17ms现象好的多。但是我再现刚才的情形(打开很多软件)情况没有重复出现。在此作为记录,不求回答,欢迎探讨。 我想可能是,有些软件对cpu竞争力强。导致我的程序计时不准确。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
yedaoq
2009-07-10
打赏
举报
回复
用Console.WriteLine输出时间来测试?
awesomeo
2009-07-09
打赏
举报
回复
我说何必呢,Thread.Sleep()本来就不准,睡眠时间与系统延时、各线程优先级等等都有关,你想开点儿吧。
huhuaqiwen
2009-07-09
打赏
举报
回复
哎
wcl1986_1
2009-07-07
打赏
举报
回复
17ms可以的。有时我的机子上还能有2ms左右呢,我也不知怎么回事?
zhujiechang
2009-07-06
打赏
举报
回复
精度不够。17ms太小了,需要自己用API实现,不能以有曾经有3ms的准确来比较,小于它的最小极限数值后都有误差。
wcl1986_1
2009-07-05
打赏
举报
回复
ding
libolei
2009-07-05
打赏
举报
回复
不明白 upupupupupupupup
wcl1986_1
2009-07-03
打赏
举报
回复
不是啊 有时可以sleep(1)是2ms,有时有时15ms
不知怎么的。
我用
int i=0
while(++i<=1000)
{
Thread.sleep(1);
}
console.writeLine(datetime.now);
测试的
newdigitime
2009-06-18
打赏
举报
回复
你的CPU频率太低,无法切出17ms以下的线程块.
wcl1986_1
2009-06-18
打赏
举报
回复
顶
wcl1986_1
2009-06-12
打赏
举报
回复
有的说sleep() 10ms以下 是自欺欺人
但是,我试过几次,是有用的,是可以低于10ms的,只是不准确+-3ms. 因情况而定。
似乎Thread.Sleep 比Timer.interval 精确 网上有2者的比较 他的结果是精确度相似
16天入门物联网操作系统——RT-
Thread
课程概述: RT-
Thread
是一个集实时操作系统(RTOS)内核、中间件组件和开发者社区于一体的技术平台,由熊谱翔先生带领并集合开源社区力量开发而成,RT-
Thread
也是一个组件完整丰富、高度可伸缩、简易开发、超低功耗...
深入理解
Thread
.
sleep
(1000)的注意事项及原理分析
最近服务器上出现了一次长时间的STW,原因也比较
诡异
.通过jstack分析,可疑代码居然是
Thread
.
sleep
(1000)。
java setdaemon_Java中守护线程的总结
thread
.setDaemon(true)
在Java中有两类线程:User
Thread
(用户线程)、Daemon
Thread
(守护线程)用个比较通俗的比如,任何一个守护线程都是整个JVM中所有非守护线程的保姆:只要当前JVM实例中尚存在任何一个非守护线程没有结束,守护线程就...
11.一个
诡异
的可见性问题
Thread
.
sleep
(0)生效的原因是导致线程切换,线程切换会导致缓存失效从而读取到了新的值。在单线程的环境下,如果向一个变量先写入一个值,然后在没有写干涉的情况下读取这个变量的值,那这个时候读取到的这个变量的...
Java中守护线程的总结
thread
.setDaemon(true)
在Java中有两类线程:User
Thread
(用户线程)、Daemon
Thread
(守护线程) 用个比较通俗的比如,任何一个守护线程都是整个JVM中所有非守护线程的保姆: 只要当前JVM实例中尚存在任何一个非守护线程没有结束,守护线程...
.NET Framework
17,740
社区成员
24,334
社区内容
发帖
与我相关
我的任务
.NET Framework
.NET技术 .NET Framework
复制链接
扫一扫
分享
社区描述
.NET技术 .NET Framework
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章