Ich muss, sagen wir, 20 parallele Aufgaben ausführen. Die Taskfunktion, die aufgerufen wird, ist eine lange laufende Funktion und kann Fehler erzeugen. Ich wollte das vom Anrufer erkennen und die Aufgabe wiederbeleben.Erkennen von Fehlern in Aufgaben und Wiederbeleben
Während ich verstehe, dass die Behandlung der Ausnahme "innerhalb der Aufgabe" und Ausführen der Aufgabe eine Lösung ist, habe ich auch überlegt, ob es Mittel gibt, dies vom Aufrufer selbst zu erkennen und die fehlgeschlagene Aufgabe erneut auszuführen. Wenn ich die Aufgabe wieder zu beleben sollte es unter den Eimer von 20 Aufgaben fallen ausgeführt wird, so dass der anrufende Prozess für alle Aufgaben warten weiterhin einschließlich läuft die neue wieder Aufgabe über Await Task.WhenAll(tasks)
Hier den Code auf der Anruferseite, die 20 erzeugt andere Aufgabe und wartet auf sie alle zu beenden.
PS: Ich habe die untenstehenden Links für eine Lösung überprüft, aber habe nicht etwas passendes gefunden, das ich versuchen könnte. Aber definitiv würde denken, eine andere Methode könnte sein, die TaskContinuationOptions
Option zu verwenden, aber bin mir wirklich nicht sicher, wie und wo das in meinen Code oben passen würde.
catching parallel tasks if they stop prematurely
Perfekt, genau das, was ich gesucht habe. Danke vielmals. – Kallol