另一进程意外终止,event 事件机制不会接收。所以如果在进程通信最好用 互斥量 mutex.
进程通信代码如下:
代码一:
#include<stdio.h>
#include<stdlib.h>
#include<Windows.h>
char name[256] = "shanghai";
void main()
{
HANDLE event = CreateEvent(NULL, TRUE, FALSE, name); //创建事件
if (event)
{
printf("创建成功!");
}
else
{
return;
}
getch();
//触事件
SetEvent(event);
CloseHandle(event);
system("pause");
}
代码二:
#include<stdio.h>
#include<stdlib.h>
#include<Windows.h>
//另一进程意外终止,event 事件机制不会接收。所以如果在进程通信最好用 互斥量 mutex.
char name[256] = "shanghai";
void main()
{
HANDLE event = OpenEvent(EVENT_ALL_ACCESS,TRUE, name);
if (event == NULL)
{
printf("事件打开失败!\n");
}
printf("等待接收...\n");
DWORD res = WaitForSingleObject(event, 20000);
switch(res)
{
case WAIT_OBJECT_0:
printf("成功接收...\n");
break;
case WAIT_TIMEOUT:
printf("接收超时...\n");
break;
case WAIT_ABANDONED: //另一进程意外终止,event 事件机制不会接收。所以如果在进程通信最好用 互斥量 mutex.
printf("另一个进程意外终止运行...\n");
break;
default:
break;
}
system("pause");
}