为什么我应该使用SetTimer功能,而不是多媒体定时器服务的应用程序不需要高分辨率定时

Why should I use the SetTimer function instead of multimedia timer services for applications not requiring high resolution timing?

本文关键字:服务 定时器 多媒体 应用程序 定时 高分辨率 不需要 我应该 SetTimer 功能 为什么      更新时间:2023-10-16

对于不使用高分辨率定时的应用程序,为什么要使用SetTimer函数而不是多媒体定时器服务?

根据官方文档,这就是我应该做的,没有给出任何理由。

高分辨率计时效率较低。操作系统需要更准确地跟踪时间,它可能需要在效率低下的时候挂起其他线程,以便及时调用计时器。所以基本上,高分辨率计时器是昂贵的,你应该只在需要的时候使用昂贵的东西。

除了Brendan的观点之外,使用SetTimer,您将获得直接适合GUI程序体系结构的Windows消息,而不需要线程间通信。使用多媒体计时器,您可以在系统线程上获得回调,这很难与线程上运行的代码集成和同步。