我有一个C ++函数,需要在一段时间后调用,然后重复这个任务。你知道Win32或pthread中的任何内置函数或示例代码吗?
谢谢,
儒略
答案 0 :(得分:5)
SetTimer怎么样?
答案 1 :(得分:1)
正如旁注,我希望你没有在代码中做一些可以通过操作系统完成的事情。 (我不太了解你的要求,但我想我已经指出了。)
诸如任务调度程序(Windows)之类的东西是用于安排重复任务的,并且它们通常比手动解决方案做得更好。
答案 2 :(得分:0)
SetTimer的!
一个例子:
#include <windows.h>
#include <stdio.h>
void CALLBACK scheduled_task_1 (HWND hwnd, UINT msg, UINT id, DWORD time)
{
puts("Executing scheduled_task_1 every half-second event");
}
void CALLBACK scheduled_task_2 (HWND hwnd, UINT msg, UINT id, DWORD time)
{
puts("Executing scheduled_task_2 every two seconds event");
}
void CALLBACK scheduled_task_3 (HWND hwnd, UINT msg, UINT id, DWORD time)
{
puts("Executing scheduled_task_3 24 hours event");
}
void messageLoop(void) {
MSG msg;
while (GetMessage(&msg, NULL, 0, 0) > 0)
DispatchMessage( &msg );
}
int main(void)
{
while(true)
{
SetTimer (NULL, 0, 500, scheduled_task_1); /* every half-second */
SetTimer (NULL, 0, 2000, scheduled_task_2); /* every two seconds */
SetTimer (NULL, 0, 60*60*24*1000, scheduled_task_3); /* after 24 hours or 86400000 milliseconds */
messageLoop();
}
return 0;
}