2009-06-05 4 views

Antwort

45

Die tick ist die Einheit der Granularität für die .NET DateTime und TimeSpan Werttypen.

Es hat die folgenden allgemeinen Umrechnungen:

1 tick = 100 nanoseconds 
     = 0.1 microseconds 
     = 0.0001 milliseconds 
     = 0.0000001 seconds 
+2

Sie haben Ihre Frage eine Minute nach der Veröffentlichung beantwortet? –

+33

uh, StackOverflow regt so etwas in den FAQ an, stimmt nicht dafür ab. siehe: http://stackoverflow.com/questions/18557/how-does-stackoverflow-work-the-unofficial-faq#119658 –

+4

Mathematisch sind diese Ausdrücke nicht sinnvoll. 1 Tick ** ist ** 100 Nanosekunden. Ihr erster Ausdruck dagegen besagt, dass * 1 Tick' ** multipliziert mit ** '1E + 2' gleich '100 ns' * ist, was inkorrekt ist. Nur wenn Sie alle 4 Ausdrücke lesen, erkennen Sie, dass sie alle falsch sind. Wirklich, "1 Tick = 100 ns" wäre genug, und wäre eigentlich die beste Antwort, die Sie hätten geben können. Die Leute wissen, wie man Sekunden in Nanosekunden umwandelt. – Groo

66

Obwohl derzeit eine Zecke 100 ns ist, ist es am besten nicht auf dies als absolut verlassen kann. Verwenden Sie stattdessen 'TimeSpan.TicksPerSecond' (oder einen der anderen TicksPerXxx-Mitgliedswerte)

+7

Das ist wahr. Schreiben Sie diese nicht in Ihrem Code fest. Sie sind jedoch absolut und werden von Microsoft nicht geändert. Der Grund für diesen Post ist, dass man manchmal diese Mathe auf einem Rechner machen muss und ich wollte diese Tabelle verfügbar machen. –

+5

+1 Wusste nicht, dass "TimeSpan.TicksPerSecond" existiert –

3

Beachten Sie, dass, obwohl die theoretische Auflösung von DateTime.Now ziemlich hoch ist, die Auflösung - dh wie oft es aktualisiert wird - ist es ein bisschen niedriger .

Offenbar auf modernen Systemen DateTime.Now eine Auflösung von 10 Millisekunden hat ... Siehe msdn.microsoft.com/en-us/library/system.datetime.now.aspx

10

MSDN zu zitieren:

Die kleinste Einheit der Zeit ist, die Zecke, die ist gleich 100 Nanosekunden.

Metrologie fehlgeschlagen.

Verwandte Themen