Esempio sincronizzato

Download sample

In questo esempio viene illustrato come creare un flusso di lavoro che sincronizza l'esecuzione di gruppi delle attività. Tale operazione risulta utile, ad esempio, per sincronizzare l'accesso a una risorsa condivisa.

L'accesso sincronizzato ai dati è una considerazione importante per attività composte quali ParallelActivity, ReplicatorActivitye ConditionedActivityGroup, che dispongono di percorsi di esecuzione paralleli.

In questo esempio, il flusso di lavoro dispone di un ParallelActivity che contiene due rami. Ogni ramo contiene un'attività SynchronizationScopeActivity. Due attività CodeActivity in ogni ramo tentano di incrementare e decrementare un conteggio di istanza del flusso di lavoro. Uno ramo del codice esegue l'incremento (count++) mentre l'altro ramo del codice esegue il decremento (count--).

Le due istanze di SynchronizedScope verranno sincronizzate, dal momento che condividono un valore comune nella proprietà SynchronizationHandles, "syncMutex". In tal modo viene assicurato che una volta che la prima attività SynchronizedScope inizia l'esecuzione, le sarà consentito di essere completata prima dell'inizio dell'altra attività SynchronizedScope. Sebbene tale operazione non modificherà il valore finale del campo "count" in questo semplice esempio, essa avrà un impatto sui valori intermedi. Per vedere il comportamento senza sincronizzazione, modificare il valore della proprietà SynchronizationHandles a uno dei SynchronizedScopes, così che i due SynchronizedScopes non siano più sincronizzati.

Quando si compila e si esegue l'esempio, l'output apparirà simile agli elementi seguenti:

Output dell'esempio sincronizzato

Per generare l'esempio

  1. Scaricare l'esempio facendo clic su Scarica esempio in questo argomento.

    In tal modo viene estratto il progetto di esempio sul disco rigido locale.

  2. Fare clic sul pulsante Start, scegliere Programmi, Microsoft Windows SDK e fare clic su CMD Shell.

  3. Accedere alla directory di origine dell'esempio.

  4. Al prompt dei comandi, immettere MSBUILD <nome file soluzione>.

Per eseguire l'esempio

  • Nella finestra del prompt dei comandi di SDK, eseguire il file exe nella cartella Synchronized\bin\debug (o nella cartella Synchronized\bin per la versione VB dell'esempio), collocata sotto la cartella principale dell'esempio.

Vedere anche

Riferimenti

ParallelActivity
ReplicatorActivity
ConditionedActivityGroup
SynchronizationScopeActivity

Altre risorse

Using the ParallelActivity Activity
Using the ReplicatorActivity Activity
Using the ConditionedActivityGroup Activity
Using the SynchronizationScopeActivity Activity
Esempi di attività
Esempi di Windows Workflow Foundation

Footer image

Copyright © 2007 Microsoft Corporation. Tutti i diritti riservati.