FileStream.BeginWrite比FileStream.Write更好?我需要对同一个文件进行一批写入,但在文件内的不同位置。我想以最高性能实现这一目标,因此查看了同步FileStream.Write和异步FileStream.BeginWrite方法。同步实现就像在循环中根据需要多次调用FileStream.Write一样简单。异步版本在循环中调用FileStream.BeginWrite,然后调用WaitHandle.WaitAll以防止它们全部完成。令我惊讶的是,这比简单的同步版本要慢。我使用正确的构造函数创建了FileStream,因此我可以请求异步操作,并且还测试了指示False的IAsyncResult.CompletedSynchronous属性,以便它们异步运行。似乎使用BeginWrite的唯一好处是您不会在写入时阻塞您的线程。除了这个好处,使用异步版本还有什么意义吗?这是我的播放异步方法的测试代码,也许有一个明显的错误?//要写入文件的块的大小varchunk=1024*64;//要写入的块数asyncvarreps=32;//创建新文件并设置长度varfs=newFileStream(@"C:testfile.dat",FileMode.Create,FileAccess.ReadWrite,FileShare.None,chunk,true);fs.SetLength(块*代表);//分配资源byte[]bytes=newbyte[chunk];WaitHandle[]handles=newWaitHandle[reps];for(inti=0;i
