(The full set of ParallelExtensionsExtras Tour posts is available here .)
In a previous ParallelExtensionsExtras Tour blog post, we talked about implementing a custom partitioner for BlockingCollection<T>. Custom partitioning is an advanced but...

(The full set of ParallelExtensionsExtras Tour posts is available here .)
Producer/consumer scenarios could logically be split into two categories: those where the consumers are synchronous, blocking waiting for producers to generate data, and those...

.NET 4 introduces new data structures designed to simplify thread-safe access to shared data, and to increase the performance and scalability of multi-threaded applications. To best take advantage of these data structures, it helps to understand their...

(The full set of ParallelExtensionsExtras Tour posts is available here .)
Caches are ubiquitous in computing, serving as a staple of both hardware architecture and software development. In software, caches are often implemented as dictionaries, where...

If you've played around with PLINQ and Parallel.ForEach loops in .NET 4, you may have noticed that many PLINQ queries can be rewritten as parallel loops, and also many parallel loops can be rewritten as PLINQ queries. However, both parallel loops and...

The Task Parallel Library (TPL) exposes various options that give you more control over how tasks get scheduled and executed:
Choose whether to optimize for fairness or for overheads when scheduling tasks.
Specially mark tasks known to be long...

Thanks to everyone who attended our three breakout sessions at the Visual Studio 2010 Launch and DevConnections conference this week in Las Vegas.
Attached to this blog post are the slide decks that were presented at the talks. The code from the talks...

(The full set of ParallelExtensionsExtras Tour posts is available here .)
Delegates in .NET may have one or more methods in their invocation list. When you invoke a delegate, such as through the Delegate.DynamicInvoke method, the net result is that...

(The full set of ParallelExtensionsExtras Tour posts is available here .)
Producer/consumer is a fundamental pattern employed in many parallel applications. With producer/consumer, one or more producer threads generate data that is consumed by one...

We've spent a lot of time touting improvements to the .NET Framework in .NET 4 around threading, including core enhancements to the performance of the runtime itself. Sometimes data is more powerful than words, however, and it's useful to be able to see...

(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...

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...

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...

(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...

(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...

(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...

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...

(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...

(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...

(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...

(The full set of ParallelExtensionsExtras Tour posts is available here .)
In our previous ParallelExtensionsExtras tour post , we discussed a custom implementation of the LINQ operators, in particular for working with Task<TResult> instances...

(The full set of ParallelExtensionsExtras Tour posts is available here .)
The .NET Framework developer center provides a concise description of Language Integrated Query (LINQ):
LINQ is a set of extensions to the .NET Framework that encompass language...

Throughout the development of Parallel Extensions for the .NET Framework 4, we’ve come across a myriad of situations where certain functionality would be useful in developing a particular application or library, but where that functionality isn’t...