Reputation: 237
private async Task Upload(Ftp ftpHost)
{
//var assetImages is List<FileInfo>
var uploadedOrderFileByteCount = 0;
var uploadedOrderFileCount = 0;
foreach (var fi in assetImages.Where(fi => fi.Exists))
{
uploadedOrderFileCount++;
var count = ftp.Upload(fi);
uploadedOrderFileByteCount += await count;
fi.Delete();
}
}
Upvotes: 0
Views: 282
Reputation: 456587
You can do simple async
parallelism by using Task.WhenAll
:
private async Task Upload(Ftp ftpHost)
{
//var assetImages is List<FileInfo>
var uploadTasks = assetImages.Where(fi => fi.Exists).Select(async fi =>
{
var ret = await ftp.Upload(fi);
fi.Delete();
return ret;
}).ToArray();
var counts = await Task.WhenAll(uploadTasks);
var uploadedOrderFileByteCount = counts.Sum();
var uploadedOrderFileCount = counts.Count();
}
Upvotes: 1