Ich möchte wissen, wie viel Zeit eine Prozedur / Funktion / Bestellung zu Testzwecken benötigt, um fertig zu werden.
Dies ist, was ich getan habe, aber meine Methode ist falsch, denn wenn die Differenz von Sekunden 0 ist, können die verstrichenen Millisekunden nicht zurückgegeben werden:
Beachten Sie, dass der Schlafwert 500 ms beträgt, sodass die verstrichenen Sekunden 0 sind und keine Millisekunden zurückgegeben werden können.
Dim Execution_Start As System.DateTime = System.DateTime.Now
Threading.Thread.Sleep(500)
Dim Execution_End As System.DateTime = System.DateTime.Now
MsgBox(String.Format("H:{0} M:{1} S:{2} MS:{3}", _
DateDiff(DateInterval.Hour, Execution_Start, Execution_End), _
DateDiff(DateInterval.Minute, Execution_Start, Execution_End), _
DateDiff(DateInterval.Second, Execution_Start, Execution_End), _
DateDiff(DateInterval.Second, Execution_Start, Execution_End) * 60))
Kann mir jemand einen besseren Weg zeigen, dies zu tun? Vielleicht mit einem TimeSpan
?
Die Lösung:
Dim Execution_Start As New Stopwatch
Execution_Start.Start()
Threading.Thread.Sleep(500)
MessageBox.Show("H:" & Execution_Start.Elapsed.Hours & vbNewLine & _
"M:" & Execution_Start.Elapsed.Minutes & vbNewLine & _
"S:" & Execution_Start.Elapsed.Seconds & vbNewLine & _
"MS:" & Execution_Start.Elapsed.Milliseconds & vbNewLine, _
"Code execution time", MessageBoxButtons.OK, MessageBoxIcon.Information)
DateTime.Now
aufgrund von Sommerzeit- und Zeitzonenproblemen niemals rechnen . Bitte lesen Sie meinen Blog-Beitrag zu diesem Thema