.NET Parallel Programming

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

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

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

ParallelExtensionsExtras Tour – #2 – Task.ToObservable

(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 in an asynchronous manner. There is already an impressive implementation of the ...

ParallelExtensionsExtras Tour – #1 – LINQ to Tasks

(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-integrated query, set, and transform operations. It extends C# and Visual Basic with ...

A Tour of ParallelExtensionsExtras

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 quite encapsulated in the bits we’re shipping.  Sometimes this ...

Feedback usabilla icon