timeBeginPeriod 函数 (timeapi.h)
timeBeginPeriod 函数请求定期计时器的最低分辨率。
语法
MMRESULT timeBeginPeriod(
UINT uPeriod
);
参数
uPeriod
应用程序或设备驱动程序的最小计时器分辨率(以毫秒为单位)。 较小的值指定 (更准确的) 分辨率。
返回值
如果成功,则返回TIMERR_NOERROR;如果 uPeriod 中指定的分辨率在范围外,则返回TIMERR_NOCANDO。
注解
在使用计时器服务之前立即调用此函数,并在使用完计时器服务后立即调用 timeEndPeriod 函数。
必须将对 timeBeginPeriod 的 每次调用与 对 timeEndPeriod 的调用匹配,并在两个调用中指定相同的最低分辨率。 只要每个调用都与 timeEndPeriod 的调用匹配,应用程序就可以进行多个 timeBeginPeriod 调用。
在 Windows 10 版本 2004 之前,此函数会影响全局 Windows 设置。 对于所有进程,Windows 使用最低值 (即,) 任何进程请求的最高分辨率。 从 Windows 10 版本 2004 开始,此函数不再影响全局计时器分辨率。 对于调用此函数的进程,Windows 使用最低值 (即任何进程请求的最高分辨率) 。 对于未调用此函数的进程,Windows 不保证比默认系统分辨率更高的分辨率。
从Windows 11开始,如果拥有窗口的进程完全被遮挡、最小化或最终用户看不见或听不见,Windows 不保证比默认系统分辨率更高的分辨率。 有关此行为的详细信息 ,请参阅 SetProcessInformation 。
设置更高的分辨率可以提高等待函数中超时间隔的准确性。 但是,它也可能会降低整体系统性能,因为线程计划程序更频繁地切换任务。 高分辨率还可以阻止 CPU 电源管理系统进入节能模式。 设置更高的分辨率不会提高高分辨率性能计数器的准确性。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | timeapi.h (包括 Windows.h) |
Library | Winmm.lib |
DLL | Winmm.dll |