.NET 4 and Visual Studio 2010 saw the introduction of a wide range of new support for parallelism: the Task Parallel Library (TPL), Parallel LINQ (PLINQ), new synchronization and coordination primitives and collections (e.g. ConcurrentDictionary), an improved ThreadPool for handling parallel workloads, new debugger windows, new concurrency ...
So many of you have asked about it, and it's finally here. You can now download the RC SDK and Developer Runtime of Silverlight 5, which includes TPL Tasks!
https://10rem.net/blog/2011/09/01/silverlight-5-rc-now-available
http://www.silverlight.net/downloads
(image...
Parallelism is all about performance. After all, in the majority of cases, introducing parallelism into code adds some level of complexity, and the primary reason we’re ok with that additional complexity is because we get great performance enhancements as a result. As such, as we develop our parallel runtimes and libraries to...
Several times recently, folks have asked how to use tasks to implement the APM pattern, otherwise known as the Asynchronous Programming Model pattern, or the IAsyncResult pattern, or the Begin/End pattern. While moving forward we encourage folks to use a Task-based pattern for exposing asynchronous operation, the APM pattern has been the...
Sorting is one of the most fundamental problems in software algorithms; there are many sequential sorting algorithms with different time and memory complexities, but when it comes to parallel sort, things get more complicated. I will explain a simple and scalable algorithm to write a parallel sort using the .NET 4.0 System.Threading.Barrier ...
When .NET 4 was launched, we blogged about several case studies published regarding usage of .NET 4 to parallelize applications. Quite recently, several additional case studies have been published. I love reading these in order to better understand how folks are applying this technology, and parallelism in general, to improve their...
One important fact to know about static constructors is that they effectively execute under a lock. The CLR must ensure that each type is initialized exactly once, and so it uses locking to prevent multiple threads from executing the same static constructor. A caveat, however, is that executing the static constructor under ...
Matt Davey from Lab49 presented at the Waters North American Trading Architecture Summit April 2011 on using TPL Dataflow in trading solutions. You can see his slide deck at http://www.slideshare.net/mattdotdavey/waters-north-american-trading-architecture-summit-april-2011. It's awesome to see the technology being used effectively to ...
Today, we released a new CTP of TPL Dataflow, otherwise known as System.Threading.Tasks.Dataflow.dll. You can download this as part of the Microsoft Visual Studio Async CTP, which will also install the new C#/Visual Basic support for writing asynchronous methods, or you can install the DLL itself through the installer available on the ...
ConcurrentDictionary<TKey,TValue>, first introduced in .NET 4, is an efficient dictionary data structure that enables thread-safe reading and writing, meaning that multiple threads may all be accessing the dictionary at the same time without corrupting it. It supports adding through its TryAdd method, conditional updates through ...