事件通信:
事件通信主要是发送信号,作为事件通知使用,占用资源少,速度快
发送端:
- hEvent = ::CreateEvent(NULL,TRUE,FALSE,_T("MYMESSAGE"));
- if ((hEvent == INVALID_HANDLE_VALUE) || (hEvent == 0)) {
- MessageBox(NULL, _T(""), _T("Error"), NULL);
- }
- SetEvent(hsEvent); //测试的代码的时候可以循环发送消息,这样可以调试接收端是否正常。
- if(g_hEvent != INVALID_HANDLE_VALUE && g_hEvent != NULL)
{
CloseHandle(g_hEvent);
g_hEvent = NULL;
}
接收端:
- HANDLE g_hEvent = ::OpenEvent(EVENT_ALL_ACCESS, FALSE, _T("MYMESSAGE"));
- if((g_hEvent == INVALID_HANDLE_VALUE) || (g_hEvent == 0)){
- MessageBox(NULL, _T("open error"), _T("Error"), NULL);
- }
- while(1)
- {
- if(WaitForSingleObject(g_hEvent, 100) == WAIT_OBJECT_0)
- {
- MessageBox(NULL, _T("recevice finished!"), _T("Error"), NULL);
- ResetEvent(g_hEvent);
- }
- }