Enthält GetTickCount () die Zeit, die für den Status suspended oder hibernated verbracht wurde?

8

Zur Verdeutlichung meine ich die Zeit, die verbraucht wurde, während das System angehalten / überwintert wurde, nicht den aufrufenden Thread (GetTickCount () gibt die Anzahl der Millisekunden seit Systemstart zurück).

    
Peter Baer 04.02.2009, 20:15
quelle

6 Antworten

5

Soweit ich weiß, hat GetTickCount nichts mit Threads zu tun und zählt die Zeit seit dem Start des Systems. Aber es ist besser, GetTickCount64 zu verwenden, um das 49.7-tägige Roleover zu vermeiden.

Übrigens, um zu bekommen, was Sie wollen, brauchen Sie die GetThreadTimes Funktion. Es zeichnet die Erstellungs- und Austrittszeit und die Zeit auf, die der Thread im Benutzer- oder Kernelraum verbracht hat. So haben Sie eine schöne Möglichkeit, die Höhe der Zeit zu berechnen.

Ok, ich habe den "System" -Teil der Frage verpasst. Aber das ist einfach. Im Ruhezustand setzt GetTickCount die Zählung fort. Weil die Leute unter dem 49,7-Tage-Fehler gelitten haben, als der Computer die meiste Zeit im Ruhezustand war. Weitere Informationen finden Sie Link-Text .

    
Toon Krijthe 04.02.2009, 20:22
quelle
5

Kurze Antwort: Ja.

Längere Antwort: Lesen Sie die GetTickCount () Dokumentation: Es ist die abgelaufene Zeit seit dem Systemstart, und selbst MS würde nicht vorschlagen, dass die Zeit still steht, während sich Ihr Computer im Winterschlaf befindet ...

    
Roddy 04.02.2009 20:52
quelle
2

Ja, GetTickCount enthält Suspend / Hibernate-Zeit.

Im folgenden Python-Skript rufe ich die Sleep-API auf, um 40 Sekunden zu warten, damit ich den Computer in den Ruhezustand versetzen kann. Ich drucke die Zeit davor und danach und die Tick-Zähldifferenz nach.

%Vor%

Ausgabe:

%Vor%

Wenn GetTickCount die Zeit während des Ruhezustands nicht einschließt, wäre es viel weniger als die Zeit, für die ich im Winterschlaf war, aber es stimmt mit der tatsächlichen Zeit überein (7 Minuten 22 Sekunden entspricht 442 Sekunden, dh 442000 Millisekunden "Ticks").

    
Ben Bryant 30.10.2010 20:02
quelle
1

Für jeden, der auf der Windows CE-Plattform nach einer Antwort sucht, unter docs:

Ссылка

können Sie lesen:

  

Für Release-Konfigurationen gibt diese Funktion die Anzahl von   Millisekunden seit dem Start des Geräts, mit Ausnahme von   System wurde ausgesetzt . GetTickCount beginnt beim Start mit 0 und zählt dann   von dort.

    
marcinj 03.06.2014 08:46
quelle
0

GetTickCount() gibt Ihnen die Zeit in Millisekunden seit dem Start des Computers an. es hat nichts mit dem Prozess zu tun, der es aufruft.

    
shoosh 04.02.2009 20:23
quelle
-3

Nein, GetTickCount() enthält nicht die Zeit, die das System während des Ruhezustands benötigt. Ein einfacher Test beweist das.

in Python:

%Vor%

- Hibernate -

%Vor%

und Sie werden das Ergebnis sehen ...

    
user1629505 08.11.2009 13:37
quelle

Tags und Links