作者mhc (路邊小草)
看板Visual_Basic
標題Re: [.NET] 關於Timer
時間Wed Nov 9 23:31:10 2005
※ 引述《UBC (UBC)》之銘言:
: 我現在有程式八小時要起來工作運算
: 但是參閱了msdn後 但是黃字部份 interval似乎不可以那麼長的時間
: 請問有經驗的前輩會怎麼做呢
: 或者程式寫死 我是每天早上八點 下午四點 晚上十二點要運算結果
: 有比較好的程式寫法嗎 謝謝
: (還是用windows的工作排程 設定每八小時起來跑 但是我基本上希望是寫在程式去控制)
: Windows Form Timer 元件具有 Interval 屬性,以指定計時器事件與下一個事件之間經
: 過多少毫秒數。除非元件被停用,否則計時器將持續在大約相等的時間間隔點,收到
: Tick 的事件。
: 這個元件是專為 Windows Form 環境所設計。如果您需要適用於伺服器環境的計時器,請
: 參閱伺服器端計時器簡介。
: 當您在設計有關 Timer 元件的程式時,必須考慮 Interval 屬性的一些限制:
: 如果您的應用程式或其他應用程式對系統有大量的需求 (例如長迴圈、密集的計算或磁碟
: 機、網路或連接埠存取),則您的應用程式可能不會依照 Interval 屬性的指定取得計時
: 器事件。
: 間隔可以介於 1 和 64,767 之間 (含),也就是說,即使是最長間隔也不會超過一分鐘 (
: 約 64.8 秒) 太少。
: 間隔不保證經過時間的精確性。若要確保正確性,計時器應該檢查系統時鐘,而不是在內
: 部追蹤累積的時間。
: 系統每秒鐘產生 18 個時鐘刻度,因此即使 Interval 屬性是以毫秒計算,間隔真正的精
: 確性也不會超過十八分之一秒。
有個簡單的變通解,假設 Interval = 60000(60秒) = 1分鐘
若要做到每三小時(180分)執行一次要進行的工作
則首先另外弄一個global變數 Mins
之後每當Timer事件發生時就
1.先把Mins+=1
2.檢查Mins是不是達到180, 如果到達180則
1.把Mins歸零
2.執行要做的工作
參考參考 :)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.216.112.253