Controlestroomactiviteiten in WF

.NET Framework 4.6.1 biedt verschillende activiteiten voor het beheren van de uitvoeringsstroom binnen een werkstroom. Sommige van deze activiteiten (zoals Switch en If) implementeren stroombeheerstructuren die vergelijkbaar zijn met die in programmeeromgevingen zoals Visual C#, terwijl andere (zoals Pick) nieuwe programmeerstructuren modelleren.

Houd er rekening mee dat hoewel activiteiten zoals de Parallel activiteiten ParallelForEach meerdere onderliggende activiteiten tegelijk plannen voor uitvoering, slechts één thread wordt gebruikt voor een werkstroom. Elke onderliggende activiteit van deze activiteiten wordt sequentieel uitgevoerd en opeenvolgende activiteiten worden pas uitgevoerd als eerdere activiteiten zijn voltooid of inactief gaan. Als gevolg hiervan zijn deze activiteiten het nuttigst voor toepassingen waarin verschillende mogelijk blokkerende activiteiten op interleaved wijze moeten worden uitgevoerd. Als geen van de onderliggende activiteiten van deze activiteiten inactief gaat, wordt een Parallel activiteit net als een Sequence activiteit uitgevoerd en wordt een ParallelForEach activiteit net als een ForEach activiteit uitgevoerd. Als echter asynchrone activiteiten (zoals activiteiten die zijn afgeleid van AsyncCodeActivity) of berichtenactiviteiten worden gebruikt, wordt het besturingselement doorgegeven aan de volgende vertakking terwijl de onderliggende activiteit wacht totdat het bericht is ontvangen of het asynchrone werk is voltooid.

Activiteiten voor stroombeheer

Activity Beschrijving
DoWhile Voert de ingesloten activiteiten eenmaal uit en blijft dit doen terwijl een voorwaarde is true.
ForEach<T> Hiermee wordt een ingesloten instructie op volgorde uitgevoerd voor elk element in een verzameling. ForEach<T> is vergelijkbaar met het trefwoord foreach, maar wordt geïmplementeerd als een activiteit in plaats van een taalinstructie.
If Voert ingesloten activiteiten uit als een voorwaarde is trueen kan activiteiten in de Else eigenschap uitvoeren als de voorwaarde is false.
Parallel Voert ingesloten activiteiten parallel uit.
ParallelForEach<T> Voert een ingesloten instructie parallel uit voor elk element in een verzameling.
Pick Biedt stroommodellering op basis van gebeurtenissen.
PickBranch Vertegenwoordigt een potentieel pad naar uitvoering in een Pick activiteit.
Sequence Voert ingesloten activiteiten op volgorde uit.
Switch<T> Selecteert één keuze uit een aantal activiteiten die moeten worden uitgevoerd, op basis van de waarde van een bepaalde expressie.
While Voert ingesloten activiteiten uit terwijl een voorwaarde is true.