Funzione GetTickCount (sysinfoapi.h)

Recupera il numero di millisecondi trascorsi dall'avvio del sistema, fino a 49,7 giorni.

Sintassi

DWORD GetTickCount();

Valore restituito

Il valore restituito è il numero di millisecondi trascorsi dall'avvio del sistema.

Commenti

La risoluzione della funzione GetTickCount è limitata alla risoluzione del timer di sistema, che in genere si trova nell'intervallo di 10 millisecondi a 16 millisecondi. La risoluzione della funzione GetTickCount non è influenzata dalle modifiche apportate dalla funzione GetSystemTimeAdjustment .

Il tempo trascorso viene archiviato come valore DWORD . Pertanto, il tempo verrà eseguito intorno a zero se il sistema viene eseguito continuamente per 49,7 giorni. Per evitare questo problema, usare la funzione GetTickCount64 . In caso contrario, verificare la presenza di una condizione di overflow quando si confrontano i tempi.

Se è necessario un timer di risoluzione superiore, usare un timer multimediale o un timer ad alta risoluzione.

Per ottenere il tempo trascorso dall'avvio del computer, recuperare il contatore Tempo di sistema nei dati delle prestazioni nella chiave del Registro di sistema HKEY_PERFORMANCE_DATA. Il valore restituito è un valore a 8 byte. Per altre informazioni, vedere i contatori delle prestazioni.

Per ottenere il tempo trascorso dal momento dell'avvio del sistema, usare la funzione QueryUnbiasedInterruptTime .

Nota La funzione QueryUnbiasedInterruptTime produce risultati diversi nelle build di debug ("checked") di Windows, perché il conteggio dei tempi di interruzione e il conteggio dei tick sono avanzati di circa 49 giorni. Ciò consente di identificare i bug che potrebbero non verificarsi fino a quando il sistema non è stato in esecuzione per molto tempo. La compilazione selezionata è disponibile per i sottoscrittori MSDN tramite il sito Web MICROSOFT Developer Network (MSDN).
 

Esempio

// calculate a 't' value that will linearly interpolate from 0 to 1 and back every 20 seconds
DWORD currentTime = GetTickCount();
if ( m_startTime == 0 )
{
    m_startTime = currentTime;
}
float t = 2 * (( currentTime - m_startTime) % 20000) / 20000.0f;
if (t > 1.0f)
{
    t = 2 - t;
}

Requisiti

Requisito Valore
Client minimo supportato Windows 2000 Professional [app desktop | App UWP]
Server minimo supportato Windows 2000 Server [app desktop | App UWP]
Piattaforma di destinazione Windows
Intestazione sysinfoapi.h (includere Windows.h)
Libreria Kernel32.lib
DLL Kernel32.dll

Vedere anche

Funzioni temporali

Ora di Windows