使定时器间隔小于 1 ms .Net
Make Timer interval less than 1 ms .Net
我正在尝试制作间隔小于 1 毫秒的计时器
我的尝试:
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Timer1.Interval = 0000001
Timer1.Start()
End Sub
Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
ProgressBar1.Increment(+1)
If ProgressBar1.Value = 100 Then
Timer1.Stop()
ProgressBar1.Value = 0
MessageBox.Show("Done, 1 Ms")
End If
End Sub
当我使用“0000001”间隔时,间隔值返回“1”。
我的主要目的是制作一个计时器 运行 作为纳秒,以比 1 毫秒更快地增加标签的文本 (+1)。我知道它会每 1 秒产生 (+1000),但我需要让它快于 1 毫秒。
那么,定时器有没有可能比1ms还快?
不幸的是,这是不可能的。有关此问题的更多信息,请参阅 this msdn post。 StopWatch
对象可用于 精确测量 ,但没有我们在 Timer
.
中看到的滴答事件
好吧,我不认为这是可能的,但如果你只是想加快事件的传递,你可以尝试在一个时间间隔内多次调用相同的函数。由于多种原因,这将不准确,但它确实会渗透。另一个问题可能是如果您计划调用函数 100s 或 1000s 或 times 是事件可能与下一个滴答重叠。这取决于 CPU 强度。这可能是也可能不是缺点。您可以添加一个 Timer.Stop();
和一个 Timer.Start();
,但这会限制您可以拥有的最大速度,并且还会进一步降低准确性。
我正在尝试制作间隔小于 1 毫秒的计时器
我的尝试:
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Timer1.Interval = 0000001
Timer1.Start()
End Sub
Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
ProgressBar1.Increment(+1)
If ProgressBar1.Value = 100 Then
Timer1.Stop()
ProgressBar1.Value = 0
MessageBox.Show("Done, 1 Ms")
End If
End Sub
当我使用“0000001”间隔时,间隔值返回“1”。
我的主要目的是制作一个计时器 运行 作为纳秒,以比 1 毫秒更快地增加标签的文本 (+1)。我知道它会每 1 秒产生 (+1000),但我需要让它快于 1 毫秒。
那么,定时器有没有可能比1ms还快?
不幸的是,这是不可能的。有关此问题的更多信息,请参阅 this msdn post。 StopWatch
对象可用于 精确测量 ,但没有我们在 Timer
.
好吧,我不认为这是可能的,但如果你只是想加快事件的传递,你可以尝试在一个时间间隔内多次调用相同的函数。由于多种原因,这将不准确,但它确实会渗透。另一个问题可能是如果您计划调用函数 100s 或 1000s 或 times 是事件可能与下一个滴答重叠。这取决于 CPU 强度。这可能是也可能不是缺点。您可以添加一个 Timer.Stop();
和一个 Timer.Start();
,但这会限制您可以拥有的最大速度,并且还会进一步降低准确性。