Flusssteuerungsaktivitäten in WF
Dieses Thema gilt für Windows Workflow Foundation 4.
.NET Framework, Version 4 stellt mehrere Aktivitäten zum Steuern des Ausführungsflusses innerhalb eines Workflows bereit. Einige dieser Aktivitäten (z. B. Switch und If) implementieren Flusssteuerungsstrukturen ähnlich denen in Programmierumgebungen wie Visual C#, während andere neue Programmierungsstrukturen modellieren (z. B. das Pick-Objekt).
Beachten Sie, dass Aktivitäten wie die Aktivitäten Parallel, ParallelForEach und ParallelForEach mehrere untergeordnete Aktivitäten für eine gleichzeitige Ausführung planen, bei einem Workflow jedoch nur ein einzelner Thread verwendet wird. Jede untergeordnete Aktivität in diesen Aktivitäten wird sequenziell ausgeführt, und nachfolgende Aktivitäten werden erst ausgeführt, wenn vorherige Aktivitäten beendet werden oder sich im Leerlauf befindet. Deshalb sind diese Aktivitäten sehr hilfreich bei Anwendungen, in denen sich die Ausführung mehrerer potenziell blockierender Aktivitäten überschneidet. Wenn keine der untergeordneten Aktivitäten in diesen Aktivitäten blockiert oder in den Leerlauf wechselt, wird eine Parallel-Aktivität auf dieselbe Weise wie eine Sequence-Aktivität ausgeführt, und eine ParallelForEach-Aktivität wird genau wie eine ForEach-Aktivität ausgeführt. Wenn jedoch asynchrone Aktivitäten verwendet werden (z. B. Aktivitäten, die vom AsyncCodeActivity-Objekt abgeleitet werden, oder Messagingaktivitäten), erzeugen die untergeordneten Elemente der Parallel-Aktivität einen neuen Thread für ihre Ausführung.
Flusssteuerungsaktivitäten
Aktivität | Beschreibung |
---|---|
Führt die enthaltenen Aktivitäten ein Mal aus und setzt dies fort, solange für eine Bedingung true festgelegt ist. |
|
ForEach |
Führt eine eingebettete Anweisung nacheinander für jedes Element in einer Auflistung aus. Das ForEach-Objekt unterscheidet sich kaum vom Schlüsselwort foreach, es wird jedoch vornehmlich als Sprachanweisung und nicht als Aktivität implementiert. |
If |
Führt enthaltene Aktivitäten aus, wenn eine Bedingung auf true festgelegt ist, und kann Aktivitäten ausführen, die in der Else-Eigenschaft enthalten sind, wenn die Bedingung auf false festgelegt ist. |
Parallel |
Führt enthaltene Aktivitäten parallel aus. |
ParallelForEach |
Führt eine eingebettete Anweisung für jedes Element in einer Auflistung gleichzeitig aus. |
Pick |
Stellt ereignisbasierte Flusssteuerungsmodellierung bereit. |
Sequence |
Führt enthaltene Aktivitäten nacheinander aus. |
Switch |
Wählt aus einer Reihe von Aktivitäten eine Aktivität zur Ausführung aus, basierend auf dem Wert eines angegebenen Ausdrucks. |
Führt enthaltene Aktivitäten aus, solange eine Bedingung auf true festgelegt ist. |