Antworten:
Sie müssen nichts Besonderes tun, sondern Parallel.Foreach()warten, bis alle verzweigten Aufgaben abgeschlossen sind. Über den aufrufenden Thread können Sie ihn als einzelne synchrone Anweisung behandeln und beispielsweise in einen try / catch-Code einschließen.
Bei Parallel.Foreach ist dies nicht erforderlich: Das foreach wird nur in so vielen Threads ausgeführt, wie Prozessoren verfügbar sind, es wird jedoch synchron zurückgegeben.
Weitere Informationen finden Sie hier