2016-06-01 16 views
2

Zum Beispiel möchte ich 3 Aufgaben bestellen, die in einer klaren Reihenfolge abhängen. Ist Option B gleich Option A bezüglich der Fortsetzung?Verschiedene Arten der Bestellung von Aufgaben

Option A:

Task returnTask = initTask.ContinueWith(async delegate { await homeTask; }).ContinueWith(async delegate { await sessionTask; }); 
await returnTask; 

Option B - innerhalb von 1 Methode:

await initTask; 
await homeTask; 
await sessionTask; 

Antwort

1

Da ContinueWith keine besondere Unterstützung für Aufgaben Rückkehr Delegierten Option A nicht für Aufgaben 2 und 3 warten.

Ist Ihnen bewusst, dass warten nicht startet oder eine Aufgabe ausführen? Es wartet auf eine bereits laufende Aufgabe. Aus diesem Grund führt die Option B auch keine Sequenzierung der Aufgaben durch. Es ist fast die gleiche wie await Task.WhenAll(...);

Wahrscheinlich, sollten Sie diese verwenden:

await F1(); 
await F2(); 
await F3(); 

auf diese Weise die nächste Aufgabe nach dem vorherigen abgeschlossen gestartet wird.

Verwandte Themen