What is the difference between the two activities?

  1. For Each Activity
    Output
    0
    1
    2
    3
    4

  2. Parallel For Each Activity
    Output
    19
    18
    17
    16
    15…

Hi @sumouse

In this case
FOR EACH Activity
-Check the array in a queue
PARALLEL FOR EACH Activity

  • After reading up on it, it can execute the iterations faster because they run in parallel.

For Each - Only the last image in the array will be monitored
Parallel For Each - Every image in the array will be monitored

ParallelForEach.zip (120.4 KB)

Hi

Foreach loop:

  • Iterations takes place sequentially, one by one
  • foreach loop is run from a single Thread.
  • foreach loop is defined in every framework of .NET
  • Execution of slow processes can be slower , as they’re run serially
    • Process 2 can’t start until 1 is done. Process 3 can’t start until 2 & 1 are done…
  • Execution of quick processes can be faster , as there is no threading overhead

Parallel.ForEach:

  • Execution takes place in parallel way.
  • Parallel.ForEach uses multiple Threads.
  • Parallel.ForEach is defined in .Net 4.0 and above frameworks.
  • Execution of slow processes can be faster , as they can be run in parallel
    • Processes 1, 2, & 3 may run concurrently (see reused threads in example, below)
  • Execution of quick processes can be slower , because of additional threading overhead

Here you go with an example

I understand what you mean to me.
But if you make an example and put it into practice,
It’s hard to tell the difference between for-each activity and parallel-for-each activity.

The result I imagined.
For 1 : 1
For 1 : 2
For 1 : 3
For 2 : 1
For 1 : 4
For 2 : 2

However, Parall For Each Activity 1, 2, and 3 do not interfere with each other while each is running.
It’s just like For Each Activity.