Ejemplo sincronizado

Download sample

En este ejemplo se muestra cómo crear un flujo de trabajo que sincroniza la ejecución de grupos de actividades. Esto es útil, por ejemplo, para sincronizar el acceso a un recurso compartido.

El acceso a datos sincronizado puede ser importante para actividades compuestas como ParallelActivity, ReplicatorActivity y ConditionedActivityGroup que tienen rutas de acceso de ejecución paralelas.

En este ejemplo, el flujo de trabajo tiene una ParallelActivity que contiene dos bifurcaciones. Cada bifurcación contiene una actividad SynchronizationScopeActivity. Dos actividades CodeActivity en cada bifurcación intentan incrementar y disminuir un recuento de instancias de flujo de trabajo. Una bifurcación de código incrementa (count++), mientras la otra bifurcación de código reduce (count--).

Se sincronizarán las dos instancias de SynchronizedScope, puesto que comparten un valor común en su propiedad SynchronizationHandles, "syncMutex". Así se garantiza que cuando la primera actividad SynchronizedScope empieza a ejecutarse podrá finalizar antes de que empiece la otra actividad SynchronizedScope. Aunque esto no cambiará el valor final del campo de "count" de este ejemplo simple, afecta a los valores intermedios. Para ver el comportamiento sin la sincronización, cambie el valor de la propiedad SynchronizationHandles de una de las actividades SynchronizedScope, para que dejen de sincronizarse.

Al generar y ejecutar el ejemplo, el resultado tendrá un aspecto similar al siguiente:

Resultados del ejemplo de sincronización

Para generar el ejemplo

  1. Descargue el ejemplo haciendo clic en Descargar ejemplo en este tema.

    Así se extrae el proyecto de ejemplo en su disco duro local.

  2. Haga clic en Inicio, señale Programas, señale Microsoft Windows SDK y, a continuación, haga clic en CMD Shell.

  3. Vaya al directorio de origen del ejemplo.

  4. En el símbolo del sistema, escriba MSBUILD <nombre del archivo de solución>.

Para ejecutar el ejemplo

  • En la ventana del símbolo del sistema del SDK, ejecute el archivo .exe de la carpeta Synchronized\bin\debug (o la carpeta Synchronized\bin para la versión de VB del ejemplo), que se encuentra bajo la carpeta principal del ejemplo.

Consulte también

Referencia

ParallelActivity
ReplicatorActivity
ConditionedActivityGroup
SynchronizationScopeActivity

Otros recursos

Using the ParallelActivity Activity
Using the ReplicatorActivity Activity
Using the ConditionedActivityGroup Activity
Using the SynchronizationScopeActivity Activity
Ejemplos de actividades
Ejemplos de Windows Workflow Foundation

Footer image

Copyright © 2007 Microsoft Corporation. Reservados todos los derechos.