Ich habe ein Objekt, das ein System.Threading.Tasks.Task
zurückgibt:Wie starte ich eine Liste <Task> parallel?
public class MyClass
{
public Task GetTask(object state, CancellationToken cancellationToken)
{
return new Task(Execute, state, cancellationToken);
}
public void Execute(object context)
{
//do stuff
}
}
An anderer Stelle ein List<MyClass>
ich habe, so dass ich nach dem ein List<Task>
zu erhalten:
var myTaskList = myClassList.Select(p => p.GetTask(null, cancellationToken)).ToList();
Nun, da ich die List<Task>
habe, wie kann Ich starte sie alle parallel? Gibt es eine prägnantere Möglichkeit, dies zu codieren?
Danke!
Danke, die 'Parallel.ForEach()' war was ich gesucht habe. – user833115xxx
'Parallel.ForEach' blockiert den aktuellen Thread weiterhin, bis alle Iterationen abgeschlossen sind. – davenewza
Sie haben Recht - die Frage war ziemlich unklar, aber auch meine Antwort. Wahrlich paralleler Weg ist es, (beliebige) 'task.Start()' Logik in einem separaten Thread auszuführen (d. H. Thread-Objekt, Task mit LongRunning-Erstellungsoption, Parallel.Invoke usw.) –