windows 中的微秒计时器
microsecond timer in windows
我正在使用 C++ Builder 开发一个 windows 应用程序,我需要以微秒为单位定期调用一个函数。 C++Builder的TTimerclass只允许我设置这个时间间隔,单位是毫秒。我也试过使用Windows(https://docs.microsoft.com/en-us/windows/win32/sync/using-a-waitable-timer-with-an-asynchronous-procedure-call)的Waitable定时器,但也只能以毫秒为单位调整时间。有没有办法在微秒内实现类似的功能?
以前,计时器的最小分辨率是 +- 10 毫秒。即使将定时器设置为 1ms 也不会在 1ms 之后发生,而是在 7-10 ms 左右(有时甚至更长)发生。在 Windows 中,更精细的计时器分辨率在这种情况下毫无意义。您不能依赖计时器来获得快速响应时间,也不能预测您的程序何时可能被 OS 换出 CPU。
我正在使用 C++ Builder 开发一个 windows 应用程序,我需要以微秒为单位定期调用一个函数。 C++Builder的TTimerclass只允许我设置这个时间间隔,单位是毫秒。我也试过使用Windows(https://docs.microsoft.com/en-us/windows/win32/sync/using-a-waitable-timer-with-an-asynchronous-procedure-call)的Waitable定时器,但也只能以毫秒为单位调整时间。有没有办法在微秒内实现类似的功能?
以前,计时器的最小分辨率是 +- 10 毫秒。即使将定时器设置为 1ms 也不会在 1ms 之后发生,而是在 7-10 ms 左右(有时甚至更长)发生。在 Windows 中,更精细的计时器分辨率在这种情况下毫无意义。您不能依赖计时器来获得快速响应时间,也不能预测您的程序何时可能被 OS 换出 CPU。