Sök…


Syntax

  • stopWatch.Start () - Startar stoppuret.
  • stopWatch.Stop () - Stoppar stoppuret.
  • stopWatch.Elapsed - Få den totala förflutna tiden mätt med det aktuella intervallet.

Anmärkningar

Stoppur används ofta i benchmarkingprogram för att tidkod och se hur optimala olika segment av kod tar att köra.

Skapa ett exempel på ett stoppur

En Stopwatch-instans kan mäta förfluten tid över flera intervaller, varvid den totala förflutna tiden är alla individuella intervaller som läggs samman. Detta ger en pålitlig metod för att mäta förfluten tid mellan två eller flera händelser.

Stopwatch stopWatch = new Stopwatch();
stopWatch.Start();

double d = 0;
for (int i = 0; i < 1000 * 1000 * 1000; i++)
{
    d += 1;
}

stopWatch.Stop();
Console.WriteLine("Time elapsed: {0:hh\\:mm\\:ss\\.fffffff}", stopWatch.Elapsed);

Stopwach finns i System.Diagnostics så du måste lägga till using System.Diagnostics; till din fil.

IsHighResolution

  • Egenskapen IsHighResolution anger om timern är baserad på en högupplösningsprestandräknare eller baserad på DateTime-klassen.
  • Detta fält är skrivskyddat.
// Display the timer frequency and resolution.
if (Stopwatch.IsHighResolution)
{
    Console.WriteLine("Operations timed using the system's high-resolution performance counter.");
}
else 
{
    Console.WriteLine("Operations timed using the DateTime class.");
}

long frequency = Stopwatch.Frequency;
Console.WriteLine("  Timer frequency in ticks per second = {0}",
    frequency);
long nanosecPerTick = (1000L*1000L*1000L) / frequency;
Console.WriteLine("  Timer is accurate within {0} nanoseconds", 
    nanosecPerTick);
}

https://dotnetfiddle.net/ckrWUo

Timern som används av Stopwatch-klassen beror på systemets hårdvara och operativsystem. IsHighResolution är sant om stoppurklockan är baserad på en högupplösningsprestandräknare. Annars är IsHighResolution felaktigt, vilket indikerar att stoppuret är baserat på systemtimern.

Fästingar i Stopwatch är beroende av maskin / operativsystem, så du bör aldrig räkna med att stoppurklockans ration är till sekunder för att vara densamma mellan två system, och kanske till och med på samma system efter en omstart. Således kan du aldrig räkna med att stoppurklockor är samma intervall som DateTime / TimeSpan-fästingar.

För att få systemoberoende tid, se till att använda Stopwatchs Elapsed eller ElapsedMilliseconds-egenskaper, som redan tar stoppuret. Frekvens (fästingar per sekund).

Stopwatch ska alltid användas över Datetime för timingprocesser eftersom det är mer lätt och använder Dateime om det inte kan använda en högupplösande prestandaräknare.

Källa



Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow