Utilizzo dell'attività ReplicatorActivity

L'attività ReplicatorActivity consente di creare un numero arbitrario di istanze di una singola attività durante la fase di esecuzione. Ogni attività ReplicatorActivity può contenere una sola attività figlio, ma quest'ultima può essere di tipo CompositeActivity.

Per impostazione predefinita, l'attività ReplicatorActivity termina al completamento di tutte le attività figlio. È possibile utilizzare la proprietà UntilCondition per arrestare l'esecuzione di ReplicatorActivity prima del completamento delle istanze delle attività figlio. Per ulteriori informazioni sulle condizioni, vedere Utilizzo di condizioni nei flussi di lavoro.

Nota

L'attività ReplicatorActivity si blocca al termine di tutte le attività figlio e se la proprietà UntilCondition viene valutata come false. Una volta bloccata l'attività ReplicatorActivity, è possibile utilizzare una modifica al flusso di lavoro per aggiungere un'attività figlio a ReplicatorActivity. In questo modo la proprietà UntilCondition verrà valutata come true.

Un oggetto ReplicatorActivity richiede due informazioni principali:

  • La proprietà ExecutionType deve essere impostata come sequenziale o parallela. La proprietà ExecutionType indica se le istanze replicate delle attività figlio vengono eseguite in parallelo, ovvero vengono create tutte quando viene eseguita l'attività ReplicatorActivity, o in sequenza, caso in cui ogni istanza dell'attività figlio viene eseguita dopo il completamento dell'istanza precedente.

  • Nella proprietà dell'insieme di InitialChildData devono essere inseriti i dati da fornire a ogni istanza replicata dell'attività figlio.

È possibile implementare il gestore Initialized, generato prima dell'avvio dell'esecuzione di ReplicatorActivity, per inserire dati nella proprietà dell'insieme InitialChildData e impostare la proprietà ExecutionType.

È inoltre possibile specificare i gestori degli eventi seguenti da utilizzare insieme all'attività ReplicatorActivity:

  • L'evento ChildInitialized, generato a ogni inizializzazione di un'istanza dell'attività figlio, passa i dati dall'elemento dell'insieme di InitialChildData all'istanza effettiva dell'elemento figlio inizializzato. ReplicatorChildEventArgs contiene gli argomenti dell'evento relativi a questo gestore.

  • L'evento ChildCompleted generato ogni volta che viene completata un'istanza dell'attività figlio. ReplicatorChildEventArgs contiene gli argomenti dell'evento relativi a questo gestore.

  • L'evento Completed generato al termine di ReplicatorActivity.

Quando un'attività figlio viene eseguita più volte, per ogni iterazione viene creata un'istanza separata. Ciò consente l'esecuzione indipendente e potenzialmente in parallelo delle istanze, come nel caso dell'attività ConditionedActivityGroup. 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. Nel caso, ad esempio, di un'attività ReplicatorActivity, è possibile che siano presenti più istanze attive. ReplicatorActivity.DynamicActivities restituisce pertanto un insieme delle istanze in esecuzione dell'attività figlio.

Per ulteriori informazioni, vedere la classe ReplicatorActivity nello 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à ReplicatorActivity, vedere Using Replicator.

Vedere anche

Riferimenti

ReplicatorActivity
ReplicatorChildEventArgs

Concetti

Utilizzo di condizioni nei flussi di lavoro
Cenni preliminari su regole e condizioni

Altre risorse

Replicator Sample
Attività di Windows Workflow Foundation

Footer image

Copyright © 2007 Microsoft Corporation. Tutti i diritti riservati.