// tr1.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <windows.h>
#include <memory>
#include <functional>
#include <iostream>
#include <boost/thread.hpp>
#include <boost/bind.hpp>
using namespace std;
HANDLE hFile = INVALID_HANDLE_VALUE;
struct MyOverlapped : public OVERLAPPED
{
int total_size;
DWORD file_size;
};
MyOverlapped o;
char g_chRead;
volatile DWORD g_Finished = 0;
HANDLE hEventRead = NULL;
HANDLE hEventWrite = NULL;
void CreateEvent()
{
hEventRead = CreateEvent(NULL, TRUE, FALSE, NULL);
hEventWrite = CreateEvent(NULL, TRUE, FALSE, NULL);
}
void CloseEvent()
{
CloseHandle(hEventRead);
hEventRead = NULL;
CloseHandle(hEventWrite);
hEventWrite = NULL;
}
void StartAsyncRead()
{
hFile = CreateFile(L"D:\\NetFox.rar", GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_ALWAYS, FILE_FLAG_OVERLAPPED, NULL);
if (hFile == INVALID_HANDLE_VALUE)
{
c++异步io学习笔记
最新推荐文章于 2024-08-14 04:07:34 发布
这篇博客介绍了如何使用C++进行异步IO操作,通过创建事件句柄并结合Boost库,实现了一个文件的异步读取和写入。在读取线程中,不断等待事件触发并读取文件内容,直到文件读取完毕;而在写入线程中,当接收到事件触发后,将读取的数据写入新的文件。
摘要由CSDN通过智能技术生成