2009-10-27 115 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。

相關問題