Attività di controllo del flusso in WF
Le informazioni contenute in questo argomento sono valide per Windows Workflow Foundation 4.
.NET Framework versione 4 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 degli ambienti di programmazione come Visual C#, mentre altre modellano nuove strutture di programmazione (ad esempio Pick).
Si noti che mentre attività quali Parallel, ParallelForEach e ParallelForEach pianificano l'esecuzione di più attività figlio contemporaneamente, per un flusso di lavoro viene utilizzato 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à si blocca o diventa inattiva, un'attività Parallel viene eseguita come un'attività Sequence e un'attività ParallelForEach viene eseguita come un'attività ForEach. Tuttavia, se vengono utilizzate attività asincrone (ad esempio attività che derivano dall'oggetto AsyncCodeActivity o attività di messaggistica), i figli dell'attività Parallel producono un nuovo thread per l'esecuzione.
Attività di controllo del flusso
Attività | Descrizione |
---|---|
Esegue una volta le attività contenute e continua mentre una condizione è true. |
|
ForEach |
Esegue un'istruzione incorporata in sequenza per ogni elemento in una raccolta. L'oggetto ForEach è simile alla parola chiave foreach, ma viene implementato come un'attività piuttosto che un'istruzione del 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 |
Esegue un'istruzione incorporata in parallelo per ogni elemento in una raccolta. |
Pick |
Fornisce modellazione del flusso di controllo basato sull'evento. |
Sequence |
Esegue attività contenute in sequenza. |
Switch |
Seleziona una scelta da un numero di attività da eseguire, in base al valore di una determinata espressione. |
Esegue le attività contenute mentre una condizione è true. |