All about Async/Await, System.Threading.Tasks, System.Collections.Concurrent, System.Linq, and more…
The new parallelization support in the .NET Framework 4 is implemented purely in libraries and the runtime and does not require special compiler support. Therefore, it is available to all compliant .NET languages. This includes all of the managed languages that ship as part of Visual Studio 2010 (Visual C#, Visual Basic, Visual F#, and C++/CLI) as well as other Microsoft-provided languages (e.g. IronPython) and 3rd-party developed languages. In fact, our samples available at http://code.msdn.microsoft.com/ParExtSamples include examples in multiple languages.
However, some of the APIs in .NET 4 have been designed with certain language capabilities in mind. For example, C#, Visual Basic, and F# all support lambda expressions and closures, which enable easily defining the bodies for Tasks and parallel loops. Query comprehensions in C# and Visual Basic, and sequences in F#, can help to write cleaner, more elegant PLINQ queries. F#’s support for asynchronous workflows and its provision of immutability of data by default are geared towards making it easier to write highly concurrent applications.
In summary, you can introduce parallelism in your application using any .NET language. Which one is best still depends on your scenario.
I hope to see Axum released or
at least some of it's features integrated in C#
The Parallel Extensions in .NET 4.0 are awesome, but they are not limited to just the next version of the framework either. The Rx library includes the Task Parallel Library and has builds for .NET 3.5 and Silverlight, so you can use the Parallel features in those versions too. I posted a couple of examples using Parallel.ForEach in C# 3.5 and in the latest stable build of IronPython here:
Keep up the great work!
I think Studio 2010 ist Okfor parallel Programming