我在控制器上写了一个操作,将文件保存到磁盘。在.Net Core 2.0上
我看到一些代码保存了这样的文件。
foreach (var formFile in files)
{
if (formFile.Length > 0)
{
using (var stream = new FileStream(filePath, FileMode.Create))
{
await formFile.CopyToAsync(stream);
}
}
}
这是保存文件异步但顺序。所以我决定写一点不同
var fileTasks = files.Where(f => f.Length > 0).Select(f => this.SaveFile(f, BASE_PATH));
await Task.WhenAll(fileTasks);
protected async Task SaveFile(IFormFile file, string basePath)
{
var fileName = Path.GetTempFileName();
var filePath = Path.Combine(basePath, fileName);
using (var stream = new FileStream(filePath, FileMode.Create))
{
await file.CopyToAsync(stream);
}
}
假设我将它们全部保存到同一个驱动器中,这样做会有什么好处吗?
我知道我不会在任何线程上阻挡,但光盘上是否还会有瓶颈?或者现代计算机可以一次保存多个文件吗?