我是C新手,並試圖找到一些代碼片段,以瞭解如何在C中實現時間觸發任務。我有兩個函數,其執行時間可能在50到200毫秒之間變化。我想將這些函數傳遞給一個工作線程,該工作線程應該計劃每500毫秒運行一次。在C(win32-platform)中是否有一個簡單的方法(如java的TimerTask)用標準運行時庫實現定時器任務?如何在win32平臺上以C語言實現時間驅動的任務?
1
A
回答
0
看看在TimerQueue
相關功能:
http://msdn.microsoft.com/en-us/library/ms682483(v=vs.85).aspx
1
用c您可以使用Win32 SetTimer功能
1
使用CreateTimerQueueTimer
有窗口調用函數每500ms:
void CALLBACK timer_function(void* /*lpParameter*/,BOOLEAN /*TimerOrWaitFired*/)
{
/* do stuff */
}
HANDLE timer_handle;
void start_timer()
{
void* parameter; /* passed as lpParameter of timer_function */
DWORD milliseconds_before_first_call=100; /* execute after 100ms */
DWORD milliseconds_between_calls=500; /* and then every 500ms */
CreateTimerQueueTimer(&timer_handle,NULL,timer_function,parameter,
milliseconds_before_first_call,milliseconds_between_calls,
WT_EXECUTELONGFUNCTION /* the function takes a while, and may block */
);
}
相關問題
- 1. 在Azure上實現長時間的後臺任務的webapps
- 2. 爲C#(實際上任何語言)
- 3. 如何實現C#random.nextDouble C語言
- 4. 使用cocos2d語言目標實現無限滾動遊戲平臺遊戲c
- 5. 在後臺實現長時間運行的任務IOS
- 6. 以C語言移動平均值
- 7. 使用C語言實現Web服務
- 8. 語言和平臺
- 9. 如何在Windows 2000平臺上處理win32服務
- 10. 如何在ios平臺上使用C++實現GameCenter
- 11. Win32事件驅動的編程是如何實現的?
- 12. 如何以LISP語言實現堆棧
- 13. 如何實現C#語法以使用自己的平臺? ECMA標準
- 14. 如何在Google協作平臺上支持不同的語言?
- 15. 多語言支持如何在Drupal 8等平臺上工作?
- 16. Corona在Win32平臺上的編輯
- 17. 如何在Win32上使用C++安裝硬件驅動程序?
- 18. 在C++中實現一個事件並定期驅動「腳本語言」?
- 19. 如何在iOS中實現長時間運行的任務?
- 20. 如何製作跨平臺的C++內聯彙編語言?
- 21. 如何在C語言中實現「連續調用」語法糖?
- 22. 如何以Java或C#語言實現統一算法?
- 23. Kindle SDK語言/平臺
- 24. 跨語言/跨平臺日期和時間轉移
- 25. 來自scons的Doxygen在Win32平臺上以失敗告終
- 26. 任何語言的Slickest REPL控制檯
- 27. 如何以C語言獲取用戶主頁(與平臺無關)?
- 28. 如何在OSX上實現沒有GLU的FPS攝像頭(或跨平臺)C++
- 29. c在移動平臺上的支持
- 30. 以新的編程語言實現xunit