Attività del flusso di controllo in WF
.NET Framework 4.6.1 offre diverse attività per il controllo del flusso di esecuzione all'interno di un flusso di lavoro. Alcune di queste attività (ad esempio Switch
e If
) implementano strutture di controllo del flusso simili a quelle in ambienti di programmazione come Visual C#, mentre altre (ad esempio Pick
) modellano nuove strutture di programmazione.
Si noti che mentre attività quali Parallel
e ParallelForEach
pianificano l'esecuzione di più attività figlio contemporaneamente, per un flusso di lavoro viene usato un solo thread. Ogni attività figlio di queste attività viene eseguita in sequenza e le attività successive non vengono eseguite fino a quando le attività precedenti non vengono completate o non diventano inattive. Di conseguenza, queste attività sono molto utili per applicazioni nelle quali diverse attività potenzialmente di blocco devono essere eseguite in un modo caratterizzato da interfoliazione. Se nessuna delle attività figlio di queste attività diventa inattiva, un'attività Parallel
viene eseguita come un'attività Sequence
e un'attività ParallelForEach
viene eseguita come un'attività ForEach
. Se, tuttavia, vengono usate attività asincrone (come le attività che derivano da AsyncCodeActivity) o attività di messaggistica, il controllo passa al branch successivo mentre l'attività figlio attende la ricezione del messaggio o il completamento del relativo lavoro asincrono.
Attività di controllo del flusso
Attività | Descrizione |
---|---|
DoWhile | Esegue una volta le attività contenute e continua mentre una condizione è true . |
ForEach<T> | Esegue un'istruzione incorporata in sequenza per ogni elemento in una raccolta. ForEach<T> è simile alla parola chiave foreach , ma viene implementato come un'attività piuttosto che un'istruzione di linguaggio. |
If | Esegue le attività contenute se una condizione è true e può eseguire attività contenute nella proprietà Else se la condizione è false . |
Parallel | Esegue attività contenute in parallelo. |
ParallelForEach<T> | Esegue un'istruzione incorporata in parallelo per ogni elemento in una raccolta. |
Pick | Fornisce modellazione del flusso di controllo basato sull'evento. |
PickBranch | Rappresenta un percorso potenziale di esecuzione in un'attività Pick. |
Sequence | Esegue attività contenute in sequenza. |
Switch<T> | Seleziona una scelta da un numero di attività da eseguire, in base al valore di una determinata espressione. |
While | Esegue le attività contenute mentre una condizione è true . |