VB.NET计时器间隔1=1毫秒?

VB.NET计时器间隔1=1毫秒?,vb.net,timer,milliseconds,Vb.net,Timer,Milliseconds,我有一个间隔为1的计时器 间隔1=1毫秒? 如果间隔1不是1毫秒,那么告诉我哪个控制间隔=1ms 代码: 正如您所看到的-我使用的是间隔为1的常规计时器,但我认为它是有效的,因为计时器不计算毫秒数 如果您得到建议,请告诉我。MSDN中间隔属性的描述如下: 获取或设置标记事件发生之前的时间(以毫秒为单位) 相对于勾号事件的最后一次出现而引发 然而(史蒂夫在评论中指出): Windows窗体计时器组件是单线程的,并且受到限制 精确到55毫秒。如果需要多线程 更精确的计时器,请在系统中使用tim

我有一个间隔为1的计时器

间隔1=1毫秒?

如果间隔1不是1毫秒,
那么告诉我哪个控制间隔=1ms

代码:

正如您所看到的-我使用的是间隔为1的常规计时器,
但我认为它是有效的,因为计时器不计算毫秒数


如果您得到建议,请告诉我。

MSDN中间隔属性的描述如下:

获取或设置标记事件发生之前的时间(以毫秒为单位) 相对于勾号事件的最后一次出现而引发

然而(史蒂夫在评论中指出):

Windows窗体计时器组件是单线程的,并且受到限制 精确到55毫秒。如果需要多线程 更精确的计时器,请在系统中使用timer类。Timers 名称空间

取自

此处描述了所指的
系统.Timers.Timer
类:


这是工作脚本。IDK为什么有效,但有效!:)

Windows窗体计时器组件是单线程的,精度限制为55毫秒。如果您需要精度更高的多线程计时器,请使用System.Timers命名空间中的timer类。
您有System.Timers的示例吗?我需要定时器(1ms)向我们展示创建定时器并开始计时的代码。它可能在
Main
中。它将包括类似于
Timer1.Interval=1的内容。或者不用麻烦了,因为正如Steve所说,如果你真的每毫秒需要一个事件,这种计时器对你没有好处。我相当确信
系统计时器
不会超过15毫秒,因此也无法满足您的需求。你可能想看更多的信息。@Steve:对不起,在我发布这篇文章之前(在屏幕顶部!)没有看到你的评论。我们给予了信任。
Imports System.Globalization

Public Class Form1
    'Default Time To Start From
    Dim time As String = "00:00:00,000" 'Start From Here

    'Label
    Private Sub Label1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label1.Click
        Timer1.Start() 'Run The Timer On Click
    End Sub

    'TIMER
    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick

        'Timer Interval = 1

        Dim ci = CultureInfo.InvariantCulture

        Dim original As TimeSpan = TimeSpan.ParseExact(time, "hh\:mm\:ss\,fff", ci) 'ParseExact

        Dim difference As TimeSpan = TimeSpan.FromMilliseconds(1) ' = 1  Millisecond

        Dim final = original

        final = original + difference ' connect between original to difference !(00:00:00,000 + 1 MS = 00:00:00,001)!

        Dim output As String = final.ToString("hh\:mm\:ss\,fff", ci) 'convert to the format (  = 00:00:00,001  ) (Back It To The Right Format)

        time = output '!!Update!! the Time String from 00:00:00,000 To 00:00:00,001 |||| And in the Next Time 00:00:00,001 + 1 = 00:00:00,002

        Label1.Text = time 'Show the Time String in the label

    End Sub

End Class
    Imports System.Globalization


Public Class Form1
    Dim time As String = "00:00:00:00"
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load

    End Sub

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Timer1.Start()
    End Sub

    Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick

        Dim ci = CultureInfo.InvariantCulture

        Dim original As TimeSpan = TimeSpan.ParseExact(time, "dd\:hh\:mm\:ss", ci) 'ParseExact

        Dim difference As TimeSpan = TimeSpan.FromSeconds(1) ' = 1  Millisecond

        Dim final = original

        final = original + difference ' connect between original to difference !(00:00:00,000 + 1 MS = 00:00:00,001)!

        Dim output As String = final.ToString("dd\:hh\:mm\:ss", ci) 'convert to the format (  = 00:00:00,001  ) (Back It To The Right Format)

        time = output '!!Update!! the Time String from 00:00:00,000 To 00:00:00,001 |||| And in the Next Time 00:00:00,001 + 1 = 00:00:00,002

        Label1.Text = time 'Show the Time String in the label

    End Sub
End Class