Zeit messen



  • Hallo,
    kann mir jemand erklären, wie man in C# die Zeit in Millisekunden oder sogar noch genauer messen kann

    Ziel ist, die Zeit, die der Benutzer zur eingabe einer Taste braucht "sehr" genau zu Messen.

    Die einzige Lösung, die ich gefunden habe war nicht genau genug, da sie die Zeit
    in 15 Millisekunden Intervallen angibt.

    Ich freue mich über eure Hilfe! 😉



  • Mit der StopWatch Klasse bekommst du die besten Ergebnisse die möglich sind.

    Besser gehts net da Windows kein Echtzeitsystem ist. Ganz unabhängig von der Sprache kann man kaum so genau in Windows Zeiten messen wie du es gern hättest.



  • Stopwatch stopwatch = new Stopwatch();
                stopwatch.Start();
    			...
    			...
                stopwatch.Stop();
                double Seconds = stopwatch.ElapsedTicks / (float)Stopwatch.Frequency;
                string strzahl = String.Format("{0:0.0000}", Seconds * 1000.0);
                string ausgabe="Benötigte Zeit in ms: " + strzahl;
    


  • Danke für die Antworten.

    Habe mich näher mit Stopwatch befasst.
    Wie zuverlässig ist eigendlich die folgende Messung:

    Stopwatch Stopuhr = new Stopwatch();
    Stopuhr.Start();
    long nanosecPerTick = (1000L * 1000L * 1000L) / Stopwatch.Frequency;
    Console.WriteLine("Frequenz" + Stopwatch.Frequency);
    Console.WriteLine("Nanosec. pro Takt" + nanosecPerTick );
    Stopuhr.Stop();
    
    float nanosec = Stopuhr.ElapsedTicks * nanosecPerTick;
    Console.WriteLine("Nanosec. für Ausführung: " + nanosec;
    Console.WriteLine("Microsec. für Ausführung: " + nanosec / 1000;
    Console.WriteLine("Millisec. für Ausführung: " + nanosec / 1000 / 1000;
    Console.WriteLine("Sekunden für Ausführung: " + nanosec / 1000 / 1000 / 1000;
    

    Ausgabe in der Konsole:

    Frequenz: 14318180
    Nanosec pro Takt 69
    Nanosec. für Ausführung 3541287
    Microsec. für Ausführung 3541,287
    Millisec. für Ausführung 3,541287
    Sekunden für Ausführung 0,003541287

    sind diese Angaben zuverlässig?


Anmelden zum Antworten