2009-10-27 80 views
1

我正在寻找一种使用Win API异步读取/写入文件的简单方法。我所拥有的是头脑就像异步的winsock API(WSAxxx)完成例程。但是,文件API似乎没有这些。他们隐藏在某个地方吗?异步读取/写入文件的最简单方法?

在一个单独的线程中等待重叠的事件会增加线程管理开销,更不用说那里需要成为每个文件的线程,或者需要面对64个对象的问题。完成端口是一个矫枉过正的问题。在单独的线程中同步读取文件是无关紧要的。

有什么建议吗?

回答

0

我知道在.net它是possible。我不知道的是它映射到哪些win32函数

1

CreateFileReadFile/WriteFile函数支持所谓的“重叠”模式,这就是你所需要的。还有仅在异步模式下工作的ReadFileEx/WriteFileEx

总之,您需要打开FILE_FLAG_OVERLAPPED标志的文件并通过OVERLAPPED结构(以及xxxEx操作时的回调)到文件访问功能。

Here's使用它的示例类。

0

只要进入异步领域,您应该忘记“最简单” 严格说来,最简单的方法是使用.NET的System.IO.FileStream,在构造函数和BeginRead/EndRead方法中使用isAsync = true。

相关问题