Jakie są różnice między używaniem Parallel.ForEach lub Task.Run () do asynchronicznego uruchamiania zestawu zadań?
Wersja 1:
List<string> strings = new List<string> { "s1", "s2", "s3" };
Parallel.ForEach(strings, s =>
{
DoSomething(s);
});
Wersja 2:
List<string> strings = new List<string> { "s1", "s2", "s3" };
List<Task> Tasks = new List<Task>();
foreach (var s in strings)
{
Tasks.Add(Task.Run(() => DoSomething(s)));
}
await Task.WhenAll(Tasks);
Task.WaitAll
zamiastTask.WhenAll
.