Zoeken…


Syntaxis

  • stopWatch.Start () - Start de stopwatch.
  • stopWatch.Stop () - stopt de stopwatch.
  • stopWatch.Elapsed - Krijgt de totale verstreken tijd gemeten door het huidige interval.

Opmerkingen

Stopwatches worden vaak gebruikt in benchmarkingprogramma's om tijdcode te programmeren en te zien hoe optimaal verschillende codesegmenten worden uitgevoerd.

Een instantie van een stopwatch maken

Een chronometerinstantie kan de verstreken tijd over verschillende intervallen meten, waarbij de totale verstreken tijd alle individuele intervallen bij elkaar worden opgeteld. Dit geeft een betrouwbare methode om de verstreken tijd tussen twee of meer gebeurtenissen te meten.

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 bevindt zich in System.Diagnostics dus u moet toevoegen using System.Diagnostics; naar uw bestand.

IsHighResolution

  • De eigenschap IsHighResolution geeft aan of de timer is gebaseerd op een prestatieteller met hoge resolutie of op de DateTime-klasse.
  • Dit veld is alleen-lezen.
// 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

De timer die door de Stopwatch-klasse wordt gebruikt, is afhankelijk van de systeemhardware en het besturingssysteem. IsHighResolution is waar als de timer van de stopwatch is gebaseerd op een prestatieteller met hoge resolutie. Anders is IsHighResolution onwaar, wat aangeeft dat de chronometer op de systeemtimer is gebaseerd.

Teken in Stopwatch zijn afhankelijk van de machine / het besturingssysteem, dus u moet nooit rekenen op het rantsoen van Stopwatch-teken tot seconden om hetzelfde te zijn tussen twee systemen, en mogelijk zelfs op hetzelfde systeem na een herstart. U kunt er dus nooit op rekenen dat stopwatch-ticks hetzelfde interval zijn als DateTime / TimeSpan-ticks.

Om systeemonafhankelijke tijd te krijgen, moet u de eigenschappen Elapsed of ElapsedMilliseconds van de Stopwatch gebruiken, die al rekening houden met de Stopwatch.Frequency (tikken per seconde).

Stopwatch moet altijd gedurende Datetime worden gebruikt voor timingprocessen, omdat het lichter is en Dateime gebruikt als het geen prestatieteller met hoge resolutie kan gebruiken.

Bron



Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow