Сцепление задач (дождитесь завершения предыдущего задания)

var tasks = new List<Task>();

foreach (var guid in guids)
{
    var task = new Task( ...);
    tasks.Add(task);
}

foreach (var task in tasks)
{
    task.Start();
    Task.WaitAll(task);
}

Это запуск потока пользовательского интерфейса. Мне нужно выполнить все задачи в переменной задачи один за другим. Проблема в том, что если я вызываю Task.WaitAll (task), пользовательский интерфейс зависает. Как я могу сделать следующую логику без зависания интерфейса?

Ответы на вопрос(3)

Ваш ответ на вопрос