Solved

Parallel.For Loop Q?

Posted on 2011-03-24
12
760 Views
Last Modified: 2012-05-11
How can I use Step in a Parallel.For loop?

For Instance, I can do this:
For i As Integer = 0 To 100 Step 10
   'Do Something
Next

But this:
Parallel.For(0, 100 Step 10, Function(i)
   'Do Something
                                         End Function)

bombs with an Overload error
0
Comment
Question by:kevp75
  • 5
  • 4
  • 2
12 Comments
 
LVL 23

Assisted Solution

by:wdosanjos
wdosanjos earned 150 total points
ID: 35209034
AFAIK, there is no way to set the Step on a Parallel.For (it is always 1).  You can work around this limitation by calculating your index as below:

Parallel.For(0, 10, Function(i)
                    Dim index As Integer = i * 10
                    'Do Something
                    End Function)

Open in new window

0
 
LVL 27

Expert Comment

by:nmarun
ID: 35209077
0
 
LVL 25

Author Comment

by:kevp75
ID: 35209183
Arun, i don't understand how it applies to my need
0
Master Your Team's Linux and Cloud Stack

Come see why top tech companies like Mailchimp and Media Temple use Linux Academy to build their employee training programs.

 
LVL 25

Author Comment

by:kevp75
ID: 35215073
hello?
0
 
LVL 27

Accepted Solution

by:
nmarun earned 350 total points
ID: 35220467
Have a look here: http://www.lovethedot.net/2009/02/parallelfor-deeper-dive-parallel.html - tells you there's no way to give a step-size for the Parallel.For method.

Arun
0
 
LVL 25

Author Comment

by:kevp75
ID: 35221874
it doesn't say anywhere in that article that a step size cannot be used.
0
 
LVL 27

Expert Comment

by:nmarun
ID: 35221998
The article says:

you wouldn’t be able to modify the iterator inside the loop as you can in for

Arun
0
 
LVL 25

Author Comment

by:kevp75
ID: 35243486
ah
0
 
LVL 23

Expert Comment

by:wdosanjos
ID: 35243671
BTW, I provided the answer way before the accepted solution.
0
 
LVL 27

Expert Comment

by:nmarun
ID: 35270503
wdosanjos, Although you did answer the question before, I think your 'AFAIK' (your first post) intimated the author that you were not sure and that there might be a way of doing this. But when I provided a documented way of telling this, the author was convinced. So I'm ok with a half-split of points on this. Sorry, this was an oversight by me, should have seen this before.

kevp75, Please split the points between wdosanjos and I.

Arun
0
 
LVL 25

Author Closing Comment

by:kevp75
ID: 35278971
tank you
0

Featured Post

Master Your Team's Linux and Cloud Stack

Come see why top tech companies like Mailchimp and Media Temple use Linux Academy to build their employee training programs.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

A long time ago (May 2011), I have written an article showing you how to create a DLL using Visual Studio 2005 to be hosted in SQL Server 2005. That was valid at that time and it is still valid if you are still using these versions. You can still re…
Calculating holidays and working days is a function that is often needed yet it is not one found within the Framework. This article presents one approach to building a working-day calculator for use in .NET.
This Micro Tutorial will teach you how to censor certain areas of your screen. The example in this video will show a little boy's face being blurred. This will be demonstrated using Adobe Premiere Pro CS6.
Finds all prime numbers in a range requested and places them in a public primes() array. I've demostrated a template size of 30 (2 * 3 * 5) but larger templates can be built such 210  (2 * 3 * 5 * 7) or 2310  (2 * 3 * 5 * 7 * 11). The larger templa…

776 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question