我做了一個簡單的網絡監控系統,我希望它在每個小時後運行以保持客戶端系統的連續跟蹤。任何人都可以告訴我如何讓我的代碼在每一小時後執行。在特定時間後執行代碼
編輯:
我的平臺是Windows-7和我使用Visual Studio 2010中
我做了一個簡單的網絡監控系統,我希望它在每個小時後運行以保持客戶端系統的連續跟蹤。任何人都可以告訴我如何讓我的代碼在每一小時後執行。在特定時間後執行代碼
編輯:
我的平臺是Windows-7和我使用Visual Studio 2010中
在Linux上,嘗試cron
工作。這安排程序定期運行。
感謝您的建議,但值得尊重的是,我正在使用Visual Studio 2010開發windows-7 ... –
當然,有些[Windows模擬](http://stackoverflow.com/questions/638124/cron-like - windows系統)轉換爲'cron'。 – Duck
通過搜索類似於** cron **的程序,我找到了[At](http://ss64.com/nt/at.html)以及** cronw ** ..(它不適用於較新版本的windows).. –
爲Windows任務調度程序中的API文檔here。這不是最簡單的API,命令行工具schtasks.exe可能是一個更簡單的解決方案。
調查Waitable Timer Objects和Using Waitable Timer Objects以洞察合適的計時器API。 SetWaitableTimer function允許將期間設置爲3,600,000毫秒,其表示期望的一小時期間。
例子:
#include <windows.h>
#include <stdio.h>
int main()
{
HANDLE hTimer = NULL;
LARGE_INTEGER liDueTime;
liDueTime.QuadPart = -100000000LL;
// due time for the timer, negative means relative, in 100 ns units.
// This value will cause the timer to fire 10 seconds after setting for the first time.
LONG lPeriod = 3600000L;
// one hour period
// Create an unnamed waitable timer.
hTimer = CreateWaitableTimer(NULL, TRUE, NULL);
if (NULL == hTimer)
{
printf("CreateWaitableTimer failed, error=%d\n", GetLastError());
return 1;
}
printf("Waiting for 10 seconds...\n"); // as described with liDueTime.QuadPart
if (!SetWaitableTimer(hTimer, &liDueTime, lPeriod , NULL, NULL, 0))
{
printf("SetWaitableTimer failed, error=%d\n", GetLastError());
return 2;
}
// and wait for the periodic timer event...
while (WaitForSingleObject(hTimer, INFINITE) == WAIT_OBJECT_0) {
printf("Timer was signaled.\n");
// do what you want to do every hour here...
}
printf("WaitForSingleObject failed, error=%d\n", GetLastError());
return 3;
}
正如你現在已經注意到了,當你問半個問題,你得到的是不恰當的答案。如果您正在使用Windows,請這麼說 - 您將以這種方式得到不同的答案,這比Windows更適合Windows。 –