【发布时间】:2015-03-18 18:27:16
【问题描述】:
我处于需要从不同线程写入相同文件流的情况。问题是我找不到任何明确的解释是否需要处理写入之间的当前流位置?
我使用 FileOptions.Asynchronous 选项打开流,因此有一个重叠的 IO。
所有写入请求都按顺序进入下一个偏移量的缓冲区,根据我的测试,一切正常,数据在文件偏移量处正确写入。
但如果这种方法没有任何影响,真的有人可以回答。
【问题讨论】:
-
给出代码,得到答案... ;)
-
“所有写入请求都是按顺序进入的”-听起来您没有重叠的请求-请澄清。显然,如果请求是真正顺序的(意味着下一个写入不会在前一个完成之前开始),您不需要自己管理位置......
-
不,这不是我的意思,我的意思是所有写入请求都以正确的顺序出现。
-
使用 (var fs = new FileStream(@"c:\somefile.bin", FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.ReadWrite, 4096, FileOptions.Asynchronous)) { var buffer = new字节[65536]; for(int i = 0; i
标签: c# filestream