.NET类库中是否支持WriteFileGather

时间:2009-08-02 08:53:28

标签: c# .net mono

我想在.Net应用程序中使用Overlapped IO功能,特别是WriteFileGather。这是通过标准类库支持的吗?

奖励积分:它在Mono中有效吗?

2 个答案:

答案 0 :(得分:1)

.NET BCL中没有直接的功能,但有一些类可以帮助您使用Windows I / O. 1)初始化Overlapped类的实例。

2)使用回调调用包。

3)将生成的NativeOverlapped(Pack的返回值)传递给WriteFileGather

4)据我所知,当操作完成时,应该在工作线程上调用回调。

请务必阅读WriteFileGather上的MSDN文档,因为有一些要求,例如:数据必须在系统的页面边界上对齐(我认为x86-x64上的4K,Itanium上的8K等)等。

答案 1 :(得分:0)

FileStream类在文件周围公开流,支持同步和异步读写操作。 流上的BeginWrite的默认实现同步调用Write方法,这意味着Write可能会阻塞某些流。但是,如果实例已异步打开,则FileStream和NetworkStream等类的实例完全支持异步操作。因此,对BeginWrite的调用不会阻止这些流。 FileStream类在mono上应该完全相同。