VC下實現定時任務的方法討論

2021-04-19 07:14:26 字數 1079 閱讀 9545

最近想實現定時執行任務,查詢了網上的資料整理了一下。

實現定時任務無非就是想在未來的某一時刻執行乙個任務,最先想到的就是wm_timer訊息。

方法1:wm_timer訊息

無論是否是視窗函式都可以使用它。

啟動:settimer(hwnd hwnd,uint uid,uint uelapse,timerproc lptimerfunc);

停止:killtimer(uint uid);

在mfc中封裝了上面的函式將hwnd hwnd引數去掉即可。

有視窗將lptimerfunc函式指標置為空否則寫乙個**函式傳進去即可,當經過了uelapse時就執行此**函式。

wm_timer許可權低可能被系統丟掉不執行,重複判斷浪費資源。

方法2:使用核心物件

建立等待定時器

handle createwaitabletimer( lpsecurity_attributes lptimerattributes, //安全屬性一般為預設空 bool bmanualreset, //是否手動重置 lpctstr lptimername //定生器的名稱預設為空);

設定等待定時器等待時間bool setwaitabletimer( handle htimer, //上面的函式返回的引數 const large_integer* pduetime, //等待的時間 long lperiod, //間隔的時間 ptimerapcroutine pfncompletionroutine, //apc**函式 lpvoid lpargtocompletionroutine, //傳進apc**函式的引數 bool fresume //是否恢復系統的節電模式); dword dwrst = waitformultipleobjects(1,htimer,false,infinite);

建立乙個執行緒然後執行上面的函式等待定時器被啟用然後執行相應的任務。上面只是給了乙個想法具體的實現必須清楚多執行緒程式設計等知識。此方法作為本人程式中的方法推薦使用。方法3:使用系統的定時任務或者其他通過winexec呼叫控制台的命令對實現起來感覺有點亂,而且容易被操作員破壞,例如他禁用了定時任務的服務等等

**:一起**網

Web應用下實現定時任務簡便方法

在web應用下實現定時任務的簡便方法 在web方式下,如果我們要實現定期執行某些任務的話,除了用quartz等第三方開源工具外,我們可以使用timer和timetask來完成指定的定時任務 第一步 建立乙個任務管理類,實現servletcontextlistener 介面 以下是引用片段 publi...

Python定時任務的幾種實現方法

最近需要涉及定時任務,將涉及定時任務的實現方案進行了整理。大家自取吧。鏈結內為官方樣例 todo 給大家提供示例的實現方案 schedpython內建庫 schedule crontab django crontab celerycrontab 通過celery定時任務實現非同步的定時任務。todo...

Linux下的定時任務

在有了郵件的告警功能後,下一步要做的就是做乙個定時任務,讓這個任務按週期執行,這樣就能周期性地收到告警資訊了。在做定時任務之前,先檢查一下當前的系統時間 date y m d t 和硬體時鐘時間 hwclock root localhost test date y m d t 2013 07 01 ...