Функция GetTickCount извлекает число миллисекунд, которые истекли с тех пор как система была запущена. Она ограничивается разрешающей способностью системного таймера. Чтобы получить данные о разрешающей способности системного таймера, используйте функцию GetSystemTimeAdjustment.
DWORD GetTickCount(void); |
Возвращаемое значение - число миллисекунд, которые истекли после того, как система была запущена.
Истекшее время сохраняется как значение двойного слова (DWORD). Поэтому, время переходит через нуль, если система будет запущена непрерывно в течение 49.7 дней.
Если Вы нуждаетесь в таймере с более высокой разрешающей способностью, используете мультимедийный таймер или таймер с высокой разрешающей способностью (высокоточный таймер).
Чтобы получить истекшее время, с тех пор как компьютер запустился, извлеките счетчик Увеличения системного времени в данных производительности системы, в ключе реестра HKEY_PERFORMANCE_DATA. Возвращенное значение является 8-байтовым значением. Для получения дополнительной информации, см. Текущий контроль производительности.
Пример ниже демонстрирует, как использовать эту функцию, чтобы переждать определенный интервал времени для передачи данных. Благодаря характеру арифметической операции без знака, этот код работает корректно тогда, если возвращаемое значение переходит через нуль один раз. Если разница между двумя вызовами в функции GetTickCount составляет более чем 49.7 дней, возвращаемое значение может обернуться более чем один раз, и этот код не будет работать; используйте системное время вместо этого.
Обратите внимание! на то, что TIMELIMIT определяется как приращение временного интервала для приложения, в миллисекундах. |
DWORD dwStart = GetTickCount(); // Останавливается, если это длится слишком долго if( GetTickCount() - dwStart >= TIMELIMIT ) Cancel(); |
Обзор Время (операционной системы), Функции, используемые для времени
Размещение и совместимость GetTickCount | ||
К | Windows Vista | Да |
л | Windows XP | Да |
и | Windows 2000 Professional | Да версии 3.5 и выше |
е | Windows NT Workstation | Да |
н | Windows Me | Да |
т | Windows 98 | Да |
Windows 95 | Да | |
С | Windows Server 2008 | Да |
е | Windows Server 2003 | Да |
р | Windows 2000 Server | Да версии 3.5 и выше |
в | Windows NT Server | Да |
е | ||
р | ||
Используемая библиотека | Kernel32.lib | |
Используемая DLL | kernel32.dll | |
Заголовочный файл | ||
- объявлено в | Winbase.h | |
- включено в | Windows.h | |
Unicode | Нет | |
Замечания по платформе | Не имеется |