将多个文件关联到同一个io完成端口,同时保持文件流顺序c#

时间:2012-06-20 06:38:11

标签: c# io iocp io-completion-ports

我需要将从另一个进程发送给我的对象写入磁盘上的多个文件。 每个对象都带有fileID(要写入的文件的名称)和数据块。

我想使用IO完成端口(IOCP)来优化文件写入,使用并发异步I / O,但我必须同步写入每个文件,例如我必须在写入磁盘时保留每个文件的块顺序,而不是文件顺序。

我理解.Net在使用IOCP时会执行IO操作但是如何使其按照我想要的方式工作?

1 个答案:

答案 0 :(得分:0)

这很容易做到,您只需要跟踪每个文件的写入位置,并在编写每个块时更新它。您可以在OVERLAPPED结构中为异步写入指定写入偏移量,因此只要您跟踪每个文件中的位置,就应该能够编写块并更新每个文件的写入偏移量。