windows C++ 定时任务实现
时间: 2023-08-29 09:13:29 浏览: 145
在 Windows 平台上,可以使用 Windows API 中的定时器功能实现定时任务。下面是一个简单的实现示例:
```cpp
#include <iostream>
#include <Windows.h>
using namespace std;
void CALLBACK TimerProc(HWND hwnd, UINT uMsg, UINT_PTR idEvent, DWORD dwTime)
{
// 定时器触发后执行的操作
cout << "Timer triggered!" << endl;
}
int main()
{
// 创建定时器
UINT_PTR timerID = SetTimer(NULL, 0, 1000, TimerProc);
// 等待定时器触发
MSG msg;
while (GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
// 销毁定时器
KillTimer(NULL, timerID);
return 0;
}
```
上述代码中,使用 `SetTimer` 函数创建一个定时器,该函数的参数依次为:
- `HWND hWnd`: 定时器消息将被发送到该窗口。如果该参数为 NULL,则定时器消息将被发送到当前进程的消息队列。
- `UINT_PTR nIDEvent`: 定时器的 ID。
- `UINT uElapse`: 定时器的触发间隔,单位为毫秒。
- `TIMERPROC lpTimerFunc`: 定时器触发后执行的回调函数。
然后使用 `GetMessage` 函数循环等待定时器触发。当定时器触发后,会执行指定的回调函数 `TimerProc`。
最后使用 `KillTimer` 函数销毁定时器。
阅读全文