看板 C_and_CPP 關於我們 聯絡資訊
請教各位我這問題分成兩個平台好了 PC 和 手機 1. PC (windows系統) 我認為沒有什麼耗電的考量 我大可以開一個thread for(;;) { Sleep(1000); //停一秒 Get System Time; if(Check time) Play Ringtone; } 我比較想問 Sleep準嗎? 如果是寫一個鬧鐘程式真的可以用Sleep去計時嗎? 比較正統的作法是什麼呢?? 2. 手機 (wince) 因為有耗電的考量.... 所以上面的暴力法一定不能用吧? 且我程式會沉入背景作業 或是手機進入suspend.....甚至關機 那可能又要分三個情況了 (1) 背景作業 大概是用什麼演算法再計算時間到了沒嗎? (2) Suspend 如果suspend, 為了不耗電 我應該沒辦法做啥事情 所以應該改用什麼方法去做呢? (3) 關機 如果是關機 又存在鬧鐘功能的話 應該不是AP這層有辦法能夠控管的 那是哪一端在處理這件事~而我AP是如何跟那層溝通(例如設定時間, 撥哪個音樂) 以上我想了許久但沒個好想法 請有經驗的版友給點指教 感謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 219.87.64.222
tinlans:直接用 at 這指令還比較快。 09/14 14:35
tinlans:如果你有 pthread 可以用,pthread_cond_timedwait() 也是 09/14 14:40
tinlans:一種方法。不過我不清楚 MS 的平台有沒有得用。 09/14 14:41
littleshan:那個...為什麼不這樣:Sleep(起床時間-現在時間) 09/14 17:24
tinlans:因為他怕不準,事實上我也不知道 Sleep 準不準。 09/14 17:30
QQ29:我就很好奇 除了sleep還有啥方法 我會的太少..不過玩過小鬧鐘 09/14 17:43
QQ29:程式 都滿準的阿 至少手機的鬧鐘都很準= = 不知怎作的 09/14 17:43
concealment:If you are well known in MFC, you can google the 09/14 18:02
concealment:keyword: "WM_TIMER." I think it also usable in CE. 09/14 18:03
final01:話說 你到底要多準 要求hard real time嘛?不然夠了啦 09/14 18:05
tropical72:各計數精度問題:http://ppt.cc/LiwU 09/14 18:07
tropical72:Sleep 計算不正常問題:http://ppt.cc/Wzec 09/14 18:07
QQ29:所以基本上就開thread 然後sleep到時間到嗎? 09/14 18:16
tropical72:如果你系統的 loading 不大, 誤差(應該)是可以接受的. 09/14 18:37
QQ29:所以這樣就是最不吃電的做法嗎? 那如果關機該怎麼做呢@@ 09/14 18:49
ckp4131025:應該有辦法抓到電腦和手機內建的時間數值吧?? 09/14 20:59