visual studio 中的Thread.Sleep(1)到底延时多少啊

以前用的T420电脑 Thread.Sleep(1)是延时了1ms。

现在换了个T480竟然 Thread.Sleep(1)是延时了15ms。

于是又换了个老掉牙8年前的XP电脑,也是15ms。

看这个讨论吧:

https://bbs.csdn.net/topics/391983243?page=1

 

那么我现在想精确延时1到2个毫秒,咋整呢?

 

试了N多方法,估计5六种。都不行。

比如

 

 

 

 

'vb.net 延迟方法 占用少量cpu

Public Declare Function timeGetTime Lib "winmm.dll" () As Long
Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As  Long)

    Public Sub Delay(ByVal DlyTime As Double)
        Dim Start
        Start = timeGetTime
        Do While (timeGetTime < Start + CLng(DlyTime))
            Windows.Forms.Application.DoEvents()
            Sleep(1)
        Loop
    End Sub
 Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
	Delay(1000)  '一秒
        TextBox1.Text = "一秒后了"
    End Sub

比如那个watch

 

--------------------------------------------------------------------------------------------------

 

最后直到现在来看是比较好的方法,就是死延时

TMP = 10000

for  1  TO TMP

END

通过程序动态改变TMP的值来改变延时时间。

然后用程序测量延时时间是多少.

 

在thinpd I5内核下时间基本稳定,误差基本在几个ms以内。在老掉牙的的XP电脑下误差就更小。

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值