Czy godzina System.Diagnostics.Stopwatch
liczyć czas podczas komputera stać?Czy .NET Stoper działa w trybie gotowości/uśpienia/hibernacji?
15
A
Odpowiedz
3
Tak robi.
Patrząc na kod reflektor pokazuje, że jeśli nie jest Stopwatch.IsHighResolution
, następnie użyje liczbę kleszczy (w moim środowisku, wartość była false
więc będzie używać DateTime.UtcNow.Ticks
):
public void Start()
{
if (!this.isRunning)
{
this.startTimeStamp = GetTimestamp();
this.isRunning = true;
}
}
public static long GetTimestamp()
{
if (IsHighResolution)
{
long num = 0L;
SafeNativeMethods.QueryPerformanceCounter(out num);
return num;
}
return DateTime.UtcNow.Ticks;
}
+0
Tak, robi. Ale bardzo niedokładne. Zobacz moją odpowiedź. –
3
Po kilku próbach numer wyświetla się jako, ale był już odłogowany. To, co zrobiłem:
- napisał poniższy kod
- Ran, i natychmiast umieścić mój komputer w uśpienia trybu
- Czekaliśmy 10 sekund i przyniósł mój komputer z powrotem
Rezultatem był szokujący czas Elapsed
wynoszący ponad 4 minuty. Daleko. Więc nie użyłbym tego jako jakiegokolwiek punktu odniesienia.
Oto kod użyłem:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Diagnostics;
namespace TestingCode
{
class Program
{
static void Main(string[] args)
{
Stopwatch testing = new Stopwatch();
testing.Start();
Console.WriteLine("Press any key to stop timer");
Console.ReadKey();
testing.Stop();
Console.WriteLine("Elapsed: {0}", testing.Elapsed);
Console.WriteLine("Done!!");
Console.ReadKey();
}
}
}
Powiązane problemy
- 1. Czy .net 4.5 działa obok .net 4.0?
- 2. Stoper, który upłynął, wyjście
- 3. ponownie uruchomić stoper w java
- 4. C# - jak zatrzymać stoper?
- 5. Debugowanie w .NET w trybie Release
- 6. Podświetlanie składni w trybie Lua w trybie Emacs nie działa
- 7. .NET Framework 4 instalacja w trybie cichym
- 8. .NET Caching, jak działa Wygaśnięcie Wygaśnięcia?
- 9. Najlepszy sposób na stoper w systemie UNIX
- 10. Jak się dowiedzieć, czy Eclipse działa w trybie debugowania?
- 11. Czy usługa Firebase Analytics działa w trybie offline?
- 12. emacs: Czy HideShow działa w trybie xml (tryb sgml)?
- 13. Czy interfejs API Machine Vision działa w trybie offline?
- 14. Jak wykryć, czy Vim działa w trybie ograniczonym?
- 15. Jak mogę powiedzieć, że mój kod działa w trybie Mono?
- 16. Czy NUnit działa z .NET 3.5?
- 17. Czy C# 6.0 działa dla .NET 4.0?
- 18. Jak działa buforowanie w trybie PCX?
- 19. NLog nie działa w trybie zwolnienia
- 20. Czy muszę zatrzymać stoper, jeśli zbliża się metoda zamknięcia?
- 21. wielodobieranie nie działa w trybie wyłączności
- 22. AlarmManager nie działa w trybie uśpienia
- 23. skanowania nie działa w trybie AP (wpa_supplicant)
- 24. Czcionka Świetnie działa w trybie offline
- 25. Jak wymusić uruchomienie aplikacji .NET w trybie 32-bitowym
- 26. .NET UrlEncode nie działa?
- 27. Jak działa .NET ExecutionContext?
- 28. jednostka testowa System.Threading.Timer w .NET
- 29. IllegalAccessError do stoper guawy jest z org.apache.hadoop.mapreduce.lib.input.FileInputFormat.listStatus
- 30. Jak wygenerować PDB dla projektów zarządzanych .net w trybie zwolnienia?
Ciekawe pytanie, Użyłem Stopwatch tylko do profilowania biednych ludzi, więc nigdy nie przyszło mi to do głowy. – Davy8
Dobre pytanie .... wypróbuj i daj nam znać :) –
Jak widać z odpowiedzi, jest to zachowanie specyficzne dla implementacji. Licznik jest opakowany przez warstwę abstrakcji sprzętu systemu operacyjnego, dając projektantom sprzętu wiele opcji do cięcia groszy. –