为什么我应该使用SetTimer功能,而不是多媒体定时器服务的应用程序不需要高分辨率定时
Why should I use the SetTimer function instead of multimedia timer services for applications not requiring high resolution timing?
对于不使用高分辨率定时的应用程序,为什么要使用SetTimer
函数而不是多媒体定时器服务?
根据官方文档,这就是我应该做的,没有给出任何理由。
高分辨率计时效率较低。操作系统需要更准确地跟踪时间,它可能需要在效率低下的时候挂起其他线程,以便及时调用计时器。所以基本上,高分辨率计时器是昂贵的,你应该只在需要的时候使用昂贵的东西。
除了Brendan的观点之外,使用SetTimer
,您将获得直接适合GUI程序体系结构的Windows消息,而不需要线程间通信。使用多媒体计时器,您可以在系统线程上获得回调,这很难与线程上运行的代码集成和同步。
相关文章:
- Ardunio UNO解决了多个重叠的定时器循环
- 我们能否在stm32f中使用硬件定时器控制两个独立的进程
- Arduino Nano:A4988 使用串行输入时通过定时器进行步进控制不稳定
- 没有信号处理程序的POSIX定时器的目的是什么?
- 在定时器回调函数中使用 Sleep() 会导致C++出现问题吗?
- 如何在Qt中修改QWebsocket定时器
- 具有静态属性(服务定位器模式)的模板继承
- C++Windows中的高分辨率定时器库
- 如何用单个信号处理程序解决这个多linux定时器的问题
- C#/.NET定时器和Win32睡眠函数都是不精确的
- Udp 在 QT 定时器信号中写入数据报
- AVR CTC模式下的16位定时器
- Linux C++定时器与软实时支持
- 在Qt中实现精确定时器
- 在不中断串行的情况下禁用Arduino上的定时器0中断
- 跨平台C++高精度事件定时器实现
- 非阻塞定时器C++
- 如何使用QTextStream读取行一次一个,使用定时器
- 使用C++在Linux中创建定时器队列
- 为什么我应该使用SetTimer功能,而不是多媒体定时器服务的应用程序不需要高分辨率定时