我需要将从另一个进程发送给我的对象写入磁盘上的多个文件。 每个对象都带有fileID(要写入的文件的名称)和数据块。
我想使用IO完成端口(IOCP)来优化文件写入,使用并发异步I / O,但我必须同步写入每个文件,例如我必须在写入磁盘时保留每个文件的块顺序,而不是文件顺序。
我理解.Net在使用IOCP时会执行IO操作但是如何使其按照我想要的方式工作?
答案 0 :(得分:0)
这很容易做到,您只需要跟踪每个文件的写入位置,并在编写每个块时更新它。您可以在OVERLAPPED
结构中为异步写入指定写入偏移量,因此只要您跟踪每个文件中的位置,就应该能够编写块并更新每个文件的写入偏移量。