У меня есть следующий код:
public async Task<bool> ExecuteAsync()
{
return await someresult;
}
public async Task DoSomethingAsync()
{
var tasks = new List<Task>();
foreach (var item in someList)
{
var task = Task.Factory.StartNew(async () =>
{
await ExecuteAsync();
});
tasks.Add(task);
}
await Task.WhenAll(tasks);
// The program execution should stop here and next code should be run when all tasks are completed
}
По сути, я нахожусь в цикле foreach, где для каждого элемента я запускаю новую задачу.
После запуска всех задач мне нужен кодпосле await Task.WhenAll(tasks);
выполняется после завершения всех задач.Конечно, все они асинхронны, поэтому мне интересно, возможно ли это вообще?Поскольку все асинхронно, выполнение не останавливается на Task.WhenAll (задачи), но продолжается, даже если не все задачи завершены.Как я могу это исправить?