当我可以使用默认的TimerQueue时,为什么要使用自己的TimerQueue?

时间:2013-12-06 22:01:06

标签: c++ winapi

通过致电TimerQueue并使用CreateTimerQueue来制作我自己的CreateTimerQueueTimer,而不是仅仅使用NULL TimerQueue {{1}}来调用{{1}},我有什么优势?因此使用默认的?我知道如果我使用自己的,我可以通过删除队列一次删除所有的计时器。我很难想象这是唯一的优势,我错过了什么?

1 个答案:

答案 0 :(得分:2)

首先感谢HerrJoebob和Raymond Chen的质量评论。我原本打算不回答我自己的问题。

原因1:其他人删除默认队列中的所有计时器(感谢HerrJoebob)

原因2:其他人在默认队列中放置了一个'bajillion'(俚语为很多)计时器并让你挨饿(感谢Raymond Chen)

原因3:使用标志WT_EXECUTEINTIMERTHREAD在执行回调时保存上下文切换,但是如果回调需要一段时间,则会延迟其他计时器。使用你自己的TimerQueue意味着你有自己的计时器线程,所以没有其他人可以延迟你的计时器,你不能无意中推迟其他人。