Introducing ConcurrentStack < T >

A common problem users run into when writing parallel applications is the lack of the thread-safety support in the .NET collection classes. Users typically need to implement their own synchronization mechanism for achieving the goal of safely reading/writing data to the same shared collection. A largely deprecated solution was to use the synchronized collections introduced… Read more

PLINQ Ordering

There is a natural tension between ordering and performance in a parallel partitioning system such as PLINQ, which we addressed as guidance in the Dec07 CTP documentation:  “Although you can opt into ordering, this does come at a cost to performance because it constrains the options which PLINQ can use for executing a query, so… Read more

Parallel Extensions Demo Fun on Channel 9

When I was at TechEd 2008 Developer last week, I met up with the great Dan Fernandez from Channel 9 to show off Parallel Extensions and to demonstrate some of the sample applications included with our June 2008 CTP.  The cameras were at the ready, so you can see the demonstrations, too: Thanks, Dan!… Read more

Image Colorizer Sample in the June 2008 CTP

Continuing the tour of the samples included in the Parallel Extensions June 2008 CTP, we now turn our attention to the “Image Colorizer” application.   This sample uses the following constructs from Parallel Extensions: System.Threading.Parallel.For() and also the following from the standard .NET libraries: System.ComponentModel.BackgroundWorker System.Threading.Interlocked.Add()   The Image Colorizer was originally written by Stephen… Read more

Announcing the "Parallel Programming in Native Code" Blog

Our colleagues working on native concurrency have just launched the Parallel Programming in Native Code blog.  We’re all on the same team and work really closely to ensure that the right programming models are exposed both for managed and native consumers, so you will be able to use your language of choice.   Here’s a… Read more

More Channel 9 Parallel Extensions Goodness

Charles from Channel 9 came over to building 112 last week for an in-depth look at what’s new in the June 2008 CTP of Parallel Extensions.  We spoke on the subject for an hour and a half or so, which you can see in a two-part series that was posted to Channel 9 yesterday (by… Read more

Mandelbrot in Parallel with C++/CLI

Since the release of the December 2007 CTP of Parallel Extensions, we’ve received several questions about whether Parallel Extensions can be used from C++/CLI.  In short, yes, it can! (It can be used with any .NET language, one of the beauties of this functionality being provided through a library.)  To demonstrate, we included in the… Read more

More Powerful Aggregations in PLINQ

In the June 2008 CTP, PLINQ aggregations are more powerful than they were in the December 2007 CTP. The reason why they are more powerful is a bit subtle, but this new power enables many useful scenarios, so it is worth it to follow along with the explanation. To understand where the difference is coming… Read more

Ray Tracer samples in the June 2008 CTP

The June 2008 Community Technology Preview (CTP) of Parallel Extensions to the .NET Framework was released on Monday, and we’re really pleased at the level of excitement in the community that we’re seeing in response.  As part of the CTP, we included a  variety of demos and samples to help provide a tour of the… Read more

What’s New in the June 2008 CTP of Parallel Extensions

We’ve just released a new community technology preview (CTP) of Parallel Extensions to the .NET Framework!  You can download it from  This release contains a plethora of bug fixes as well as some design changes to address some great feedback from you (note that there are some other changes you’ve requested and that we’re… Read more