瀏覽量:13次
1. 精度不高
windows98大概是55ms,Windows NT大概是10ms。
2. WM_TIMER消息可能無法及時處理
WM_TIMER消息和其他消息一樣,存放在正常的消息隊列之中。如果程序處理其他消息,用了太長的時間,就耽誤了WM_TIMER消息的處理,從效果上看就相當(dāng)于定時器來晚了。
3. WM_TIMER消息可能會有遺漏
這樣一來,如果一個windows程序在時間方面有苛刻的要求(例如,測試儀之類的軟件),怎么辦呢。
“小兵以太網(wǎng)測試儀”采用的是如下的笨方法。
這種方法非常簡單,但也確實有效。下面是此方法的偽代碼。
interval=x; //所需的時間間隔
next_do_work_time=當(dāng)前時間;
while (!need_stop)
{
do
{
cur_time=當(dāng)前時間;
} while (!need_stop && cur_time
if (need_stop) break;
DO_WORK();
next_do_work_time+=interval;
}
需要說明的是,這種方法是很消耗CPU的 :)
[聲明]本網(wǎng)轉(zhuǎn)載網(wǎng)絡(luò)媒體稿件是為了傳播更多的信息,此類稿件不代表本網(wǎng)觀點,本網(wǎng)不承擔(dān)此類稿件侵權(quán)行為的連帶責(zé)任。故此,如果您發(fā)現(xiàn)本網(wǎng)站的內(nèi)容侵犯了您的版權(quán),請您的相關(guān)內(nèi)容發(fā)至此郵箱【779898168@qq.com】,我們在確認(rèn)后,會立即刪除,保證您的版權(quán)。
官網(wǎng)優(yōu)化
整站優(yōu)化
渠道代理
400-655-5776