Utilizzo dell'attività ConditionedActivityGroup

L'attività ConditionedActivityGroup contiene un insieme di attività figlio il cui ordine di esecuzione viene controllato dalle condizioni applicate a tali attività figlio. Per ulteriori informazioni sulle condizioni, vedere Utilizzo di condizioni nei flussi di lavoro.

La logica di esecuzione guidata dalle condizioni dell'attività ConditionedActivityGroup fornisce molte modalità per ordinare l'esecuzione delle attività figlio, compresi un tipo di esecuzione di attività in parallelo simile all'attività ParallelActivity e un tipo di ciclo del comportamento. Ad esempio, è possibile utilizzare un'attività ConditionedActivityGroup per eseguire il ciclo in un insieme di attività in modo condizionato, in base a criteri specifici di ogni attività, finché una condizione Until non risulti true per l'intera attività ConditionedActivityGroup.

Per applicare una condizione Until all'attività ConditionedActivityGroup si utilizza la proprietà UntilConditionProperty. È possibile utilizzare la proprietà WhenConditionProperty per applicare una condizione When a parte a ogni prima attività figlio derivata dell'attività ConditionedActivityGroup. Se non si specifica una condizione Until, l'attività ConditionedActivityGroup termina quando non esiste alcuna attività figlio in esecuzione e la condizione When di ogni prima attività figlio derivata ConditionedActivityGroup viene valutata false. Se non si specifica una condizione When per un'attività, quest'ultima viene eseguita una sola volta.

Quando un'attività ConditionedActivityGroup viene avviata per la prima volta, valuta la condizione Until. Se la condizione Until viene valutata false, l'attività valuta la condizione When di tutte le prime attività figlio derivate contenute nell'attività ConditionedActivityGroup. Se la condizione When di un'attività viene valutata true, tale attività viene pianificata per l'esecuzione. La valutazione di queste condizioni Until e When viene ripetuta al completamento di ogni prima attività figlio derivata.

Ogni volta che viene completata l'esecuzione di un'attività figlio, la condizione Until di un'attività ConditionedActivityGroup e le condizioni When di tutte le prime attività figlio derivate non in esecuzione vengono valutate nuovamente. Pertanto, le altre prime attività figlio derivate possono essere pianificate da zero o ripianificate per l'esecuzione a seconda di quanto si è verificato nell'attività appena completata. Non appena la condizione Until dell'attività ConditionedActivityGroup viene valutata true, tale attività annulla immediatamente qualsiasi attività figlio in esecuzione.

Quando un'attività figlio viene eseguita più volte, per ogni iterazione viene creata un'istanza a parte dell'attività. Ciò consente l'esecuzione indipendente e potenzialmente in parallelo delle istanze, come nel caso di un'attività ReplicatorActivity. Di conseguenza, la definizione dell'attività nell'albero delle attività, definito modello, non viene mai eseguita e permane sempre nello stato Initialized. L'accesso alle istanze in esecuzione del modello viene fornito dall'elemento CompositeActivity padre del modello. Ad esempio, nel caso dell'attività ConditionedActivityGroup, esiste sempre una sola istanza attiva e il metodo GetDynamicActivity restituisce questa istanza.

Per ulteriori informazioni, vedere la classe ConditionedActivityGroup dello spazio dei nomi System.Workflow.Activities nel riferimento alla libreria di classi di Windows Workflow Foundation.

Per un esempio di codice che illustri la modalità di utilizzo dell'attività ConditionedActivityGroup, vedere Using the ConditionedActivityGroup.

Vedere anche

Riferimenti

ConditionedActivityGroup
UntilConditionProperty
WhenConditionProperty

Concetti

Utilizzo di condizioni nei flussi di lavoro
Utilizzo dell’attività ParallelActivity
Procedura: utilizzare le condizioni tramite il codice
Cenni preliminari su regole e condizioni

Altre risorse

Rules and Conditions Samples
Using ConditionedActivityGroup Sample
Attività di Windows Workflow Foundation

Footer image

Copyright © 2007 Microsoft Corporation. Tutti i diritti riservati.