от знакомого получил информацию, что если получаю платежи на расч счет и веду переписку в имейл - то да, надо.
try
{ }
catch
{ }
finally
{
if (br != null)
br.Close();
}
using(var fs = new FileStream(path, FileMode.OpenOrCreate))
using(var br = new BinaryReader(fs))
{
string path = new FileInfo(...);
try
{
...
schedule = new ScheduleCollection(...);
}
catch
{ ... }
}
var task = db.Image.CountAsync();
var task2 = db.Image.ToArrayAsync();
Task.WaitAll(task, task2); // Это и есть ожидание всех результатов
var result = task.Result;
var result2 = task2.Result;
Task<ImgStatisticDto> GetStatistic(enImg section)
{
return Task.Run(() =>
{
var res = new ImgStatisticDto(section);
using (var db = ImagesContextFactory.Create(section))
{
var count = db.Image.CountAsync();
var notReady = db.Image.Where(x => !x.IsReady).CountAsync();
Task.WaitAll(count, notReady);
res.Count = count.Result;
res.NotReady = notReady.Result;
}
return res;
}
}
await GetStatistic(section)
Так в чем отличие
Task.Wait(db.Image.CountAsync()) и Task.WaitAll(db.Image.CountAsync())
var task = db.Image.CountAsync();
Task.Wait(task);
var result = task.Result;
var imgStatistics = new ConcurrentBag<ImgStatisticDto>();
var enums = Enum.GetValues(typeof(enImg))
.Where(en => en != enImg.none)
.ToArray();
Parallel.ForEach(enums, async (section) =>
{
using (var db = ImagesContextFactory.Create(section))
{
var res = new ImgStatisticDto(section);
res.Count = await db.Image.CountAsync();
res.NotReady = await db.Image.Where(x => !x.IsReady).CountAsync();
imgStatistics.Add(res);
}
});
db.Image.CountAsync();
возвращает только задачу. Расценивайте это как обещание или план действий. Выполнение этой задачи будет, тогда, когда Вы попросите или запросите результатdb.Image.CountAsync().Result
await db.Image.CountAsync()
db.Image.CountAsync().Wait()
Task.Wait(db.Image.CountAsync())