2016-06-21 5 views
-5

Bisher habe ich drei Möglichkeiten gezählt, um die aktuelle Zeit oder Zeitdifferenzen in C# zu messen:Wie viele Wege gibt es Zeit zu messen?

Und die folgenden Arten, die Zeit darstellen/Zeitspannenmessungen:

Gibt es andere?


Auch die Definition von "Tick" scheint inkonsistent zu sein. Zum Beispiel:

  • Environment.TickCount messen Sie 1-Millisekunden-Intervalle.
  • DateTime.Ticks und TimeSpan.Ticks messen 100-Nanosekunden-Intervalle.
  • Stopwatch.ElapsedTicks basieren auf Stopwatch.Frequency und das genaue Intervall kann von System zu System variieren.

Was ist los?


Auch Welche Unterschiede gibt es zwischen den verschiedenen Zeitmessmethoden/Typen, unter welchen Umständen sollte man über den anderen verwendet werden?

+4

Was müssen Sie wissen, dass es nicht in der Dokumentation für jedes der Dinge, die Sie verknüpft haben, ist? –

+1

Was ist Zeit? Ein relatives menschliches Konstrukt ... –

+0

"Gibt es noch andere?" – Hatchling

Antwort

3

Was ist los?

Der erste Satz von jeder der Seiten der Dokumentation verknüpfen Sie eine ziemlich klare Beschreibung ihrer Absicht zu geben (Hervorhebung hinzugefügt):

der aktuelle Datum und Zeit auf diesem Computer, ausgedrückt als Ortszeit.

Ruft die Anzahl der Millisekunden verstrichen ist, seit das System gestartet.

Stellt eine Reihe von Methoden und Eigenschaften, die Sie genau Zeit verstrichene können zu messen.

Stellt einen Zeitpunkt, in der Regel als Datum und Uhrzeit ausgedrückt.

Repräsentiert ein Zeitintervall.

(eine Differenz zwischen zwei Zeitpunkten)

So DateTime und TimeSpan sind nicht austauschbar, und mehr als Location und Distance sind. Sie sind bezogen aber repräsentieren verschiedene Dinge.

Wenn einer dieser nicht klar ist, oder Sie weitere Erläuterungen benötigen, sagen Sie bitte speziell, worüber Sie verwirrt sind.


Auch scheint die Definition von "Tick" unvereinbar zu sein.

Weil sie definieren _within dem Kontext, wo sie definiert sind. Es gibt keine "Industriestandard" -Definition für "Ticks", die mir bekannt sind. Einige Typen (wie Stopwatch) opfern den Bereich für größere Präzision, während andere (wie DateTime) viel größere Bereiche erlauben, aber nicht millisekundengenau sein können.


Gibt es andere?

One, die Sie nicht erwähnt haben, ist:

Generiert ein Ereignis nach einem festgelegten Intervall, mit einer Option wiederkehrende Ereignisse zu erzeugen.

Wieder dient es dient einem anderen Zweck. Es wurde entwickelt, um in regelmäßigen Abständen etwas zu tun.

Ich bin mir nicht sicher, wie breit Ihr Umfang ist zu wissen, ob es "irgendwelche anderen" gibt. Wenn Sie eine spezifische benötigen, die von einer dieser Klassen nicht erfüllt wird, dann fügen Sie das zu Ihrer Frage hinzu.

Verwandte Themen