事件Io
来源:互联网 发布:什么是云计算的基础 编辑:程序博客网 时间:2024/05/21 22:35
//事件 (串行模型)//俩个程序 直接的 共享//状态 做判断void EventIO(){HANDLE hFile = CreateFile(TEXT("DEMO.txt"),GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ, nullptr, OPEN_ALWAYS, FILE_FLAG_OVERLAPPED, nullptr);if (hFile != INVALID_HANDLE_VALUE){//readBYTE bReadBuffer[100] = { 0 };OVERLAPPED oRead = { 0 };oRead.Offset = 0;//事件内核对象 只能有一份 //一台机子多使用 最重要的是 名字oRead.hEvent = CreateEvent(nullptr, TRUE, FALSE, TEXT("ReadEvent"));//事件内核对象ReadFile(hFile, bReadBuffer, sizeof(bReadBuffer), nullptr, &oRead);//writeBYTE bWriteBuffer[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 };OVERLAPPED oWrite = {0 };oWrite.Offset = 0;//事件内核对象 只能有一份 //一台机子多使用 最重要的是 名字oWrite.hEvent = CreateEvent(nullptr, TRUE, FALSE, TEXT("WriteEvent"));//事件内核对象WriteFile(hFile, bWriteBuffer, sizeof(bWriteBuffer), nullptr, &oWrite);//同步做了俩个 操作//其他的线程HANDLE hOverlapped[2] = { 0 };hOverlapped[0] = oRead.hEvent;hOverlapped[1] = oWrite.hEvent;while (true){DWORD dwCase = WaitForMultipleObjects(2, hOverlapped,/*等待所有是 true*/FALSE, INFINITE);switch (dwCase -WAIT_OBJECT_0){case 0://read succeedbreak;case 1://write succeedbreak;default:break;}}}else{TCHAR* strErrorMsg;FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM, nullptr, GetLastError(), 0, reinterpret_cast<LPWSTR>(&strErrorMsg), 0, nullptr);MessageBox(nullptr, strErrorMsg, L"Error", MB_OK);LocalFree(strErrorMsg);}}
阅读全文
0 0
- 事件Io
- IO 事件模型
- Socket.IO 内置事件
- socket.io内置事件
- Socket.IO 内置事件
- 事件驱动IO-udp
- 事件驱动IO-tcp
- 网络事件模型---重叠IO
- 网络IO模型--事件模型
- epoll,IO事件通知机制
- Socket.IO 配置、房间、事件
- 事件驱动与异步IO
- python(十)下:事件驱动与 阻塞IO、非阻塞IO、IO多路复用、异步IO
- winsock IO 模型---重叠IO之事件通知 example code
- node.js 事件循环 异步IO 和 非IO异步
- IO模型(二)WSAEventSelect--事件选择机制
- 重叠IO之事件通知模型
- Windows socket之重叠IO:事件通知
- python正则表达式
- EAS序时簿界面显示,不再忽略数值零
- Ubuntu 16.04 vlc和ffmpeg播放rtsp视频
- 初等排序算法集合
- POJ 1213 Roman Numerals 笔记
- 事件Io
- webpack开发跨域问题解决
- MYSQL AUTO_INCREMENT自增的用法
- Struts2_Spring_Hibernate整合及测试_1(标准)
- Data truncation: Incorrect datetime value: '' for column 'start' at row 1的解决方法
- 域名中ip和端口的问题,java通过域名获取ip
- Jenkins修改端口
- iOS UI学习之路03
- spring-boot war包 访问404