Attività del flusso di controllo in WFControl Flow Activities in WF

.NET Framework 4.6.1.NET Framework 4.6.1 offre diverse attività per il controllo del flusso di esecuzione all'interno di un flusso di lavoro.The .NET Framework 4.6.1.NET Framework 4.6.1 provides several activities for controlling flow of execution within a workflow. Alcune di queste attività (ad esempio Switch e If) implementano strutture di controllo del flusso simili a quelle degli ambienti, ad esempio Visual c#, mentre altri di programmazione (ad esempio Pick) modellano nuove strutture di programmazione.Some of these activities (such as Switch and If) implement flow control structures similar to those in programming environments such as Visual C#, while others (such as Pick) model new programming structures.

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.Note that while activities such as the Parallel and ParallelForEach activities schedule multiple child activities for execution simultaneously, only a single thread is used for a workflow. 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.Each child activity of these activities executes sequentially and successive activities do not execute until previous activities either complete or go idle. 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.As a result, these activities are most useful for applications in which several potentially blocking activities must execute in an interleaved fashion. 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.If none of the child activities of these activities go idle, a Parallel activity executes just like a Sequence activity, and a ParallelForEach activity executes just like a ForEach activity. 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.If, however, asynchronous activities (such as activities that derive from AsyncCodeActivity) or messaging activities are used, control will pass to the next branch while the child activity waits for its message to be received or its asynchronous work to be completed.

Attività di controllo del flussoFlow control activities

AttivitàActivity DescrizioneDescription
DoWhile Esegue una volta le attività contenute e continua mentre una condizione è true.Executes the contained activities once and continues to do so while a condition is true.
ForEach<T> Esegue un'istruzione incorporata in sequenza per ogni elemento in una raccolta.Executes an embedded statement in sequence for each element in a collection. ForEach<T> è simile alla parola chiave foreach, ma viene implementato come un'attività piuttosto che un'istruzione di linguaggio.ForEach<T> is similar to the keyword foreach, but is implemented as an activity rather than a language statement.
If Esegue le attività contenute se una condizione è true e può eseguire attività contenute nella proprietà Else se la condizione è false.Executes contained activities if a condition is true, and can execute activities contained in the Else property if the condition is false.
Parallel Esegue attività contenute in parallelo.Executes contained activities in parallel.
ParallelForEach<T> Esegue un'istruzione incorporata in parallelo per ogni elemento in una raccolta.Executes an embedded statement in parallel for each element in a collection.
Pick Fornisce modellazione del flusso di controllo basato sull'evento.Provides event-based control flow modeling.
PickBranch Rappresenta un percorso potenziale di esecuzione in un'attività Pick.Represents a potential path of execution in a Pick activity.
Sequence Esegue attività contenute in sequenza.Executes contained activities in sequence.
Switch<T> Seleziona una scelta da un numero di attività da eseguire, in base al valore di una determinata espressione.Selects one choice from a number of activities to execute, based on the value of a given expression.
While Esegue le attività contenute mentre una condizione è true.Executes contained activities while a condition is true.