如何在vb.net中获得精确毫秒的时间

时间:2011-03-11 08:25:38

标签: vb.net

我正在开发一个非常非常关键的应用程序。我想在代码中放置一个日志编写器,以便我可以跟踪事件并找出应用程序浪费时间的位置。但问题是vb.net只能以15.25毫秒的间隔告诉时间该做什么。尽管msdn文档说我们可以用毫秒来获得时间。 要更好地理解我的问题,请阅读以下代码。此代码是在按钮的单击事件上编写的,它会将时间写入日志文件中。 问题是它写的时间比如16,16,16,经过一段时间后,当dx值达到5000时,它会跳到31然后再到46,依此类推。任何人都可以解释。

    dx = 1
    While dx <= 100000
        dx = dx + 1
        SRLog1.WriteLine("dx vALUE > " & CStr(dx) & " Ticks -> " + CStr(Now.Millisecond))
    End While

2 个答案:

答案 0 :(得分:3)

您可以使用秒表类创建分辨率更高的增量时钟。例如:

    Dim sw = Stopwatch.StartNew()
    Dim start = sw.Elapsed
    '' Do stuff
    '' ...
    Dim sample = sw.Elapsed
    Console.WriteLine(sample - start)

对于代码段中的代码来说,这仍然不太可能有效,递增整数所需的时间不到半纳秒。您实际上会测量记录所需的时间,它应该足够慢以获得不同的输出值。

答案 1 :(得分:1)

如果您想知道应用程序的哪些部分正在等待时间,那么您应该尝试使用分析器。两种可能的产品是JetBrains dotTrace和RedGates ANTS。您还应该在这里查看this question