У меня есть следующий код, и я не уверен, что он будет запускать задачи по одному или одновременно запускать все из них и ждать для всех из них закончить.Ожидайте список задач по одному за раз
Dictionary<TemporaryAdditionalData, Exception> rejected = new Dictionary<TemporaryAdditionalData, Exception>();
await Task.WhenAll(additionalData
.SelectMaybe(async adda =>
await this.InsertTemporallyAdditionalData(
guid, adda.Order, adda.ID, adda.Value, adda.IsMandatory
),
out rejected
).ToArray()
);
return rejected;
Я думаю, что метод SelectMaybe
здесь не имеет значения, это всего лишь расширение LINQ-х Select
, который автоматически перехватывает исключения и возвращает их.
1) Задачи будут выполняться один за другим или одновременно в одно и то же время?
2) Каким бы ни был ответ на вопрос 1, как я могу написать тот же код, чтобы сделать обратное?
Запустите код и узнайте сами, что он делает. Это достаточно простой тест. – Servy
@Servy Я попробую, мне, возможно, придется придумать более простую версию той же логики, поскольку у меня нет ресурсов прямо сейчас, чтобы протестировать эту конкретную реализацию. –
Это был бы лучший способ проверить это поведение, да. – Servy