System.Threading.Tasks for Silverlight

Tags: Silverlight, NuGet, TPL, System.Threading.Tasks

There are a number of solutions out there to get the Task Parallel Library onto Silverlight platforms. But those solutions are incomplete in one form or another... they either don't include the awesome collections from System.Collections.Concurrent, or the API is not compatible with what shipps in the Framework, or both. Even the TPL in Silverlight 5 only includes the System.Threading.Tasks namespace, and not the Concurrent Collections.

This package aims to solve that problem. It is a complete port of the TPL, courtesy of the Mono Project. Every aspect is 100% API compatible with the shipping .NET Framework, so you can write the same parallel code for every platform without having to worry about using conditional compilation to change your application's control flow.

Includes:

  • Tuples (SL3, WP7, WP7.1)
  • BlockingCollection, ConcurrentDisctionary, ConcurrentorderedList, ConcurrentStack, ConcurrentQueue (SL3, SL4, SL5, WP7, WP7.1)
  • Parallel.For, Parallel.For<T>, Parallel.ForEach, Parallel.ForEach<T> (SL3, SL4, SL5, WP7, WP7.1)
  • Task, Task<TResult>, TaskFactory (SL3, SL4, WP7, WP7.1)
  • *NEW* ArrayList, SortedList, StructuralComparisons (All platforms)
  • *NEW* CollectionDebuggerView (All platforms)
  • *NEW* TaskDebuggerView (SL3, SL4, WP7, WP7.1)
  • *NEW* .NET 3.5 support

Version History:

  • 1.0 - Initial release
  • 2.0 -
  • 2.1.0 -
  • 2.1.1 - An adjustment to fix test in the package itself (no binary changes).
  • 2.1.2 - A fix to Task<TResult>.FromAsync where the current state was not returned or updated.
  • 3.0 (23 March 2012) - Re-ported from Mono 2.12 RTM. Fixed a number of issues, added new Collections.
Add a Comment