Thu, November 29, 2007, 03:01 PM under
dotNET
If you watched
my videos here, please note the following clarifications:
First, in all videos I am using the old internal sort-of-a codename "PFX". This is no longer used internally or externally. Instead just refer to it as Parallel Extensions.
Second, in the
PLINQ video, when I very briefly mention what pipelining does, my description is outdated; for an up to date description of pipelining please
see this. Also in the same video I do not make it clear that the
ForAll
option will *not* allow you to preserve ordering.
Third, in the
Parallel video, where I use
return sum
and imply that it is the same as
return 0
, I am obviously wrong: The issue is that it’s possible for the first thread to complete so fast that the second thread doesn’t have any work to process. The first thread will store its partial result back into the total sum, but since the thread local selector delegate has captured that total sum variable, the second thread will be initializing its partial sum with the total sum that already includes the first sum’s partial. Thus, you could end up counting values twice so you should use
return 0
instead. In the same video, if you really wanted to simulate
break
, in the parallel version you would have to add a
return
statement after the
ps.Stop()
statement that I used.