Что в данном случаи лучше использовать: Асинхронное или Параллельное программирование?
Задача простая, но столкнулся с проблемой слишком долгого выполнения (30+ минут) Суть задачи пройти по большому кол-ву элементов (60000) в коллеции (List) и с каждым элементом сделать определенное действие (в данном случаи элемент загружается в библиотеку, которая с ним что-то делает)
Вот мой код
for (int i = 0; i < uniqueUserAgents.Count; i++)
{
var res = Result(uniqueUserAgents[i]);
dictionaryUserAgents.Add(uniqueUserAgents[i], res.Result);
Console.WriteLine($"Выполнено {i} из {uniqueUserAgents.Count}");
}
// uniqueUserAgents - кол-во элментов (60000)
public static async Task<Dictionary<string, IAgentField>> Result(string userAgent)
{
var ua_new = ParsingUserAgentInNewLibraryAsync(userAgent);
await Task.WhenAll(ua_new);
return ua_new.Result;
}
public static async Task<Dictionary<string, IAgentField>> ParsingUserAgentInNewLibraryAsync(string userAgent)
{
var immutableUserAgent = // тут подключение к библиотеки
var fieldNames = // тут получение информации из библиотеки
Dictionary<string, IAgentField> fields = new Dictionary<string, IAgentField>();
foreach (var name in fieldNames)
{
fields[name] = immutableUserAgent.Get(name);
}
await Task.CompletedTask;
return fields;
}
Вот, получается, что данный код выполняется слишком долго, поможет ли в данном случаи параллельность? Если нет, то как что Вы могли бы посоветовать для ускорения работы кода?