HANDLE h[2];
h[0] = oRead.hEvent;
h[1] = oWrite.hEvent;
while (true)
{
Sleep(3000);
DWORD dw = WaitForMultipleObjects(2, h, FALSE, 1000);
if(dw == WAIT_OBJECT_0)
{
printf("can be read./n");
oRead.Offset += 1;
// ReadFile(hfile,bBuffer,10,NULL,&oRead);
// Handle to an event set to the signaled state when the transfer has been completed
//当调用完ReadFile后,会自动设置到有信号状态。
printf("%s/n",bBuffer);
}
else if (dw == (WAIT_OBJECT_0 + 1))
{
printf("can write io./n");
// WriteFile(hfile,"shawn",6,NULL,&oWrite);
// Handle to an event set to the signaled state when the transfer has been completed
}
else
break;
}
getchar();
}
在创建event时,第二个参数表明是否为manual-reset event,此处设为false,表明系统自动管理。
当调用WaitForMultipleObject时使信号处于无信号状态。
当调用ReadFile或WriteFile时使信号处于有信号状态 。