定时的要完成一些事情。时间的线程同步。
操作系统中,每打开一个窗口,每个窗口都有一个地址,操作系统管理他是通过链表来管理的。
#include <stdio.h> #include <stdlib.h> #include <Windows.h> //单独定时间同步通信
//单独定时器只能用于同步通信,不能用于跨线程之间的通信,异步就不能通信了
void main1() { while (1) { printf("fangfang "); Sleep(2000); } system("pause"); } void main2() { HANDLE timer = CreateWaitableTimer(NULL, TRUE, NULL);//创建定时器 if (timer == NULL) { return; } else { LARGE_INTEGER time; time.QuadPart = -50000000;//2秒 //10 ^-7 秒 0.1微妙 SetWaitableTimer(timer, &time, 0, NULL, 0, NULL);//设置定时器等待2秒 if (WaitForSingleObject(timer, INFINITE) == WAIT_OBJECT_0) { printf("等待成功"); } else { printf("等待失败"); } } system("pause"); } HANDLE timer; DWORD WINAPI go1(void *p) { MessageBoxA(0, "1", "1", 0); timer = CreateWaitableTimer(NULL, TRUE, NULL);//创建定时器 LARGE_INTEGER time; time.QuadPart = -50000000;//2秒 //10 ^-7 秒 0.1微妙 SetWaitableTimer(timer, &time, 0, NULL, 0, NULL);//设置定时器等待2秒 } DWORD WINAPI go2(void *p) { MessageBoxA(0, "2", "2", 0); printf("等待成功"); } int main() { HANDLE hd=CreateThread(NULL, 0, go1, NULL, 0,NULL); WaitForSingleObject(hd, INFINITE); if (WaitForSingleObject(timer, INFINITE) == WAIT_OBJECT_0) { CreateThread(NULL, 0, go2, NULL, 0, NULL); printf("等待成功"); } else { printf("等待失败"); } getchar(); }