.NET Parallel Programming

All about Async/Await, System.Threading.Tasks, System.Collections.Concurrent, System.Linq, and more…

ParallelExtensionsExtras Tour – #9 – ObjectPool

(The full set of ParallelExtensionsExtras Tour posts is available here.) An object pool is a mechanism/pattern to avoid the repeated creation and destruction of objects.  When code is done with an object, rather than allowing it to be garbage collected (and finalized if it’s finalizable), you put the object back into ...

New case studies on Parallel Extensions

In coordination with today's launch of Visual Studio 2010 and the .NET Framework 4, several case studies have been published on how companies are taking advantage of parallel computing with the .NET Framework to improve the performance of their applications.  It's exciting to see the benefits these companies are seeing and how parallelism...

Visual Studio 2010 and the .NET Framework 4 are now available!

As announced here, Visual Studio 2010 and the .NET Framework 4 are available!  This includes the exciting support for parallel computing that we've been talking about for quite some time now.  For an overview of what's new for developers with managed code, both in terms of frameworks and tools, check out this new article on ...

ParallelExtensionsExtras Tour – #8 – ReductionVariable

(The full set of ParallelExtensionsExtras Tour posts is available here.) The new .NET 4 System.Threading.ThreadLocal<T> is quite useful when you need per-thread, per-instance storage.  This is in contrast to the fast ThreadStaticAttribute, which supports only per-thread storage (in .NET 4, ThreadLocal<T> actually ...

ParallelExtensionsExtras Tour – #7 – Additional TaskSchedulers

(The full set of ParallelExtensionsExtras Tour posts is available here.)In our last two ParallelExtensionsExtras blog tour posts, we’ve discussed two TaskScheduler implementations in ParallelExtensionsExtras: StaTaskScheduler and ConcurrentExclusiveInterleave.  These are just 2 of more than 10 schedulers in ParallelExtensionsExtras...

ParallelExtensionsExtras Tour – #6 – ConcurrentExclusiveInterleave

(The full set of ParallelExtensionsExtras Tour posts is available here.)   As mentioned in the previous ParallelExtensionsExtras blog tour post, the Task Parallel Library (TPL) supports an extensible task scheduling mechanism, and we demonstrated how an StaTaskScheduler could be implemented that scheduled tasks onto custom STA ...

Parallelism coverage in April 2010 MSDN Magazine

The April 2010 issue of MSDN Magazine is now available, and it has several nice articles that highlight the new parallel programming support in Visual Studio 2010.  Check out Doug Turnure's "Better Coding: Better Coding with Visual Studio 2010" and Sumit Kumar's "Visual C++: Exploring New C++ and MFC Features in Visual Studio 2010...

ParallelExtensionsExtras Tour – #5 – StaTaskScheduler

(The full set of ParallelExtensionsExtras Tour posts is available here.)  The Task Parallel Library (TPL) supports a wide array of semantics for scheduling tasks, even though it only includes two in the box (one using the ThreadPool, and one using SynchronizationContext, which exists primarily to run tasks on UI threads).  ...

ParallelExtensionsExtras Tour – #4 – BlockingCollectionExtensions

(The full set of ParallelExtensionsExtras Tour posts is available here.)   BlockingCollection<T> encapsulates the core synchronization and coordination necessary to enable classic producer/consumer patterns.  ParallelExtensionsExtras provides the BlockingCollectionExtensions.cs file, which contains several extension ...

ParallelExtensionsExtras Tour – #3 – Additional Task Extensions Methods

(The full set of ParallelExtensionsExtras Tour posts is available here.)  In our last ParallelExtensionsExtras tour post, we discussed implementing an extension ToObservable method for Task<TResult>.  This is just one of a myriad of extra pieces of functionality that are useful with Tasks, and the TaskExtrasExtensions...