У меня есть список асинхронных функций, которые я хочу выполнить по порядку. Когда я запускаю следующий код, я получаю вывод:Выполнять список задач async
Task 1 before
Task 2 before
Finished tasks
Почему мои асинхронные функции не ожидаются правильно?
[Test]
public async Task AsyncTaskList()
{
var data = "I'm data";
var tasks = new List<Func<object, Task>>() {Task1, Task2};
tasks.ForEach(async task =>
{
await task(data);
});
Debug.WriteLine("Finished tasks");
}
private static async Task Task1(object data)
{
Debug.WriteLine("Task 1 before");
await Task.Delay(1000);
Debug.WriteLine("Task 1 after");
}
private static async Task Task2(object data)
{
Debug.WriteLine("Task 2 before");
await Task.Delay(1000);
Debug.WriteLine("Task 2 after");
}
Я пробовал это, но получаю тот же результат –
На самом деле это работает, извините. Должно быть, я искал неправильный результат. Спасибо –
@SimonTrewhella, без проблем. Я добавил более подробное объяснение. –