这不是一个完整的例子:
#include<stdio.h>
#include<stdlib.h>
#include<Windows.h>
//单独定时器只能用于同步通信
HANDLE timer;
void main1()
{
timer = CreateWaitableTimer(NULL, TRUE, NULL); //创建定时器
if (timer == NULL)
{
return 0;
}
else
{
LARGE_INTEGER time; //精确到小数点后 7位。
time.QuadPart = -20000000; // 2秒
SetWaitableTimer(timer, &time, 0, NULL, 0, NULL); //设置定时器等待2秒
if (WaitForSingleObject(timer, TRUE, INFINITE) == WAIT_OBJECT_0)
{
printf("等待成功!\n");
}
else
{
printf("等待失败!\n");
}
}
system("pause");
}
DWORD WINAPI go1(void *p)
{
MessageBoxA(0, "1", "1", 0);
timer = CreateWaitableTimer(NULL, TRUE, NULL);
LARGE_INTEGER time; //精确到小数点后 7位。
time.QuadPart = -50000000; // 2秒
SetWaitableTimer(timer, &time, 0, NULL, 0, NULL); //设置定时器等待2秒
}
DWORD WINAPI go2(void *p)
{
MessageBoxA(0, "2", "2", 0);
printf("等待成功!\n");
}
void main()
{
HANDLE hd = CreateThread(NULL, 0, go1, NULL, 0, NULL);
if (WaitForSingleObject(hd, INFINITE) == WAIT_OBJECT_0)
{
CreateThread(NULL, 0, go2, NULL, 0, NULL);
}
else
{
printf("等待失败!\n");
}
system("pause");
}