我正在使用SqlFileStream,在构造对象时,我不确定要使用哪个FileOptions和分配大小。我是从另一篇文章中得到的,但它并没有解释原因。有人能帮我解释或给我推荐吗?
谢谢!
using (var destination = new SqlFileStream(serverPathName, serverTxnContext, FileAccess.Write, FileOptions.Asynchronous, 4096))
{
await file.CopyToAsync(destination);
}发布于 2016-06-09 19:13:25
由于您似乎试图异步复制此文件,所以您可能需要FileOptions.Asynchronous。这是访问您的文件的最快速的方式,因为您没有绑定到一个线程。FileOptions.RandomAccess和FileOptions.SequentialScan都使用缓存文件访问,但是FileOptions.SequentialScan不能保证最佳缓存。正如名称所暗示的那样,最大的区别在于如何随机或顺序地访问文件。WriteThrough只是跳过缓存,直接进入文件,这样会更快,但风险更大。
分配大小只是驱动器上的块大小。如果您通过0,它将使用默认大小,对于NTFS格式化的驱动器,这个大小将是4KB。4096原来是4KB,所以这里的人只是确定块大小是4KB。
https://stackoverflow.com/questions/37733887
复制相似问题