Я хочу установить разрешение таймера машины на 0,5 мс.
Утилита Sysinternal сообщает, что минимальное разрешение часов составляет 0,5 мс, таким образом, это может быть сделано.
P.S. Я знаю, как установить его на 1 мс.
P.P.S. Я изменил его от C# до более общего вопроса (благодаря Hans)
Системное разрешение таймера
Пример кода:
#include <windows.h>
extern "C" NTSYSAPI NTSTATUS NTAPI NtSetTimerResolution(ULONG DesiredResolution, BOOLEAN SetResolution, PULONG CurrentResolution);
...
ULONG currentRes;
NtSetTimerResolution(5000, TRUE, ¤tRes);
Ссылка с ntdll.lib
.
Лучшее, что вы можете получить от Win32 API, - это одна миллисекунда с timeBeginPeriod и timeSetEvent. Возможно, ваш HAL может работать лучше, но это академично, вы не можете писать код драйвера устройства на C #.
Для этого вам понадобится таймер с высоким разрешением .. Вы можете найти некоторую информацию здесь: http://www.codeproject.com/KB/cs/highperformancetimercshar.aspx
РЕДАКТИРОВАТЬ: Более подробную информацию можно найти здесь: установить на десятые доли миллисекунды; http://msdn.microsoft.com/en-us/library/aa964692 (VS.80) .aspx