Diseñador de actividades ParallelForEach<T>

La actividad ParallelForEach enumera los elementos de una colección y ejecuta una instrucción incrustada para cada elemento de la colección en paralelo, la cual se presenta de forma asincrónica en el mismo subproceso. Utilice esta actividad de control de flujo en lugar de la actividad Sequence si se desea que las actividades secundarias de esta actividad pasen a estado inactivo.

La actividad ParallelForEach tiene una propiedad CompletionCondition que contiene a una expresión Visual Basic especificada por el usuario. La actividad ParallelForEach evalúa esta propiedad una vez se complete cada bifurcación. Si se evalúa como true, la actividad ParallelForEach se completa sin ejecutar las otras bifurcaciones. Si CompletionCondition no se evalúa como true, la actividad ParallelForEach se completa una vez se hayan completado todas sus actividades secundarias.

Actividad ParallelForEach<T>

ParallelForEach enumera sus valores y programa la propiedad Body para cada valor que enumera. Solo programa la propiedad Body. La forma en que efectúe el cuerpo la ejecución depende de si Body pasa a estado inactivo.

Si la propiedad Body no pasa a estado inactivo, se ejecuta en orden inverso porque las actividades programadas se administran como una pila, la última actividad programada se ejecuta primero. Por ejemplo, si tiene una colección de {1,2,3,4} en ParallelForEach y utiliza WriteLine como cuerpo para escribir el valor, en la consola, tendrá impreso 4, 3, 2, 1. Esto se debe a que WriteLine no pasa a estado inactivo, por ello tras la programar 4 actividades WriteLine, estas se ejecutan comportándose como una pila (la primera en entrar es la última en salir).

Pero si tiene actividades en la propiedad Body que pueden pasar a estado inactivo, como una actividad Receive o Delay, no es necesario esperar a que se completen. ParallelForEach va a la siguiente actividad programada del cuerpo e intenta ejecutarla. Si esa actividad también pasa a estado inactivo, ParallelForEach vuelve a desplazarse hasta la siguiente actividad del cuerpo.

Utilizar el diseñador de actividades ParallelForEach<T>

El diseñador de actividades ParallelForEach<T> se puede encontrar en la categoría Flujo de control del Cuadro de herramientas, al que se tiene acceso al hacer clic en la pestaña Cuadro de herramientas a la izquierda de Diseñador de flujo de trabajo. (De forma alternativa, seleccione Barra de herramientas del menú Ver o CTRL+ALT+X).

El diseñador de actividades ParallelForEach<T> se puede arrastrar desde el Cuadro de herramientas y colocarlo en la superficie de Diseñador de flujo de trabajo, donde se coloquen normalmente los diseñadores de actividades, por ejemplo, en un diseñador de actividades Sequence. Después de colocarlo en Diseñador de flujo de trabajo, crea una actividad ParallelForEach, que de forma predeterminada contiene una propiedad DisplayName de ParallelForEach<Int32>.

Propiedades ParallelForEach<T> en el Diseñador de flujo de trabajo

En la tabla siguiente se muestran las actividades ParallelForEach más útiles y se describe cómo se utilizan en el diseñador.

Nombre de la propiedad Obligatorio Uso

DisplayName

False

Especifica el nombre para mostrar descriptivo del diseñador de actividades en el encabezado. El valor predeterminado es ParallelForEach<Int32>. De forma opcional, el valor se puede editar en la cuadrícula Propiedades o directamente en el encabezado del diseñador de actividades.

Body

False

La actividad que se va a ejecutar para cada elemento en la colección. Para agregar la actividad Body, coloque una actividad del cuadro de herramientas en el cuadro Body del diseñador de actividades ParallelForEach<T> donde aparezca el texto con la sugerencia "Coloque la actividad aquí".

TypeArgument

True

El tipo de elementos en la colección de la propiedad Values que ha especificado el parámetro genérico T. De manera predeterminada, TypeArgument se establece en Int32. Para cambiar el tipo T en el diseñador de actividades ParallelForEach<T>, cambie el valor del cuadro combinado TypeArgument en la cuadrícula de propiedades.

Values

True

La colección de elementos por la que se realizará la iteración. Para establecer la propiedad Values, escriba una expresión de Visual Basic en el cuadro Valores del diseñador de actividad ForEach<T> en el cuadro con el texto de la sugerencia "Escriba una expresión de VB" o en el cuadro Valores de la ventana Propiedades.

CompletionCondition

Se evalúa cuando se completa cada iteración. Si se evalúa como true, se cancelan las operaciones programadas pendientes. Si no se establece esta propiedad, se ejecutan todas las instrucciones programadas hasta su compleción.

De forma predeterminada, el iterador del bucle se denomina elemento. Puede cambiar el nombre de la variable de iterador en el cuadro ForEach del diseñador de actividad ParallelForEach<T>. El iterador del bucle se puede utilizar en expresiones en los elementos secundarios de la actividad ParallelForEach.

Vea también

Conceptos

Diseñador actividades Sequence
Diseñador de actividades Parallel

Otros recursos

Diseñadores de actividades de flujos de control