.NET Parallel Programming

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

Samples for Parallel Programming with the .NET Framework 4

Along with the release of the .NET Framework 4 Beta 1, we've just published a slew of samples that demonstrate using Parallel Extensions in a variety of ways.  You can download these from Code Gallery at https://code.msdn.microsoft.com/ParExtSamples.These samples include raytracers, a sudoku game, an image colorization algorithm, solvers ...

.NET 4 MSDN documentation for parallelism

In addition to the Betas of Visual Studio 2010 and the .NET Framework 4 being available for download today, the MSDN documentation for .NET 4 Beta 1 is also available.  This includes quite a bit of useful information about the new parallelism constructs.  Here's a summary of the relevant material, with links: Related to...

.NET 4 Beta 1 is now available, with parallelism!

We’re very excited that the .NET Framework 4 Beta is now available for public download, as .NET 4 has Parallel Extensions built into its core. You can download the Betas for Visual Studio 2010 and .NET Framework 4 at https://msdn.microsoft.com/en-us/netframework/dd582936.aspx.For more information on what’s new in Beta 1 regarding ...

Axum bits are released!

We’ve mentioned Axum (formerly known as Maestro) before and we have some very good news: it’s up for you to try!Axum is an incubation .NET language that aims to make programming parallelism safe by focusing on isolation of state. It balances the efficiency of shared state and the safety of message-passing in one programming model. ...

Mutable value types: the good, the bad and the ugly

Fire up your favorite search engine, type in “mutable value types” and you might just feel a bit of pity for the poor little guys. It seems like everyone hates them. Truth be told, there’s a lot to dislike about them but before we get into the nastiness of mutable value types, let’s talk about why value types in general are oft-...

What’s new in Beta 1 for Parallel LINQ (PLINQ)?

A number of improvements have been made to Parallel Extensions since the Visual Studio 2010 CTP across the Task Parallel Library (TPL), Parallel LINQ (PLINQ), and our coordination data structures.  You can find the latest on TPL (1 2 3) and the data structures (link) on this blog.  Here are the big changes to PLINQ since that CTP...

What’s new in Beta 1 for the Task Parallel Library? (Part 3/3)

Related posts: So what else is new in TPL for Beta 1 (finally)?  In the last post, we mentioned that TaskFactory offers more static helper methods than just StartNew.  In this post, we’ll cover those methods (FromAsync, ContinueWhenAll, and ContinueWhenAny) as well as the new TaskScheduler class.FromAsyncIn order to better to ...

What’s new in Beta 1 for the Task Parallel Library? (Part 2/3)

Related Posts: Last week we talked about changes under the covers, redesigns in System.Threading.Parallel, and using CancellationTokens.  So what else is new in TPL for Beta 1?  In this post, we’ll cover the new TaskFactory class, the plight of Future<T> (Task<TResult>), and TaskCompletionSource<TResult>....

Do you use LazyInitMode.AllowMultipleExecution?

In an effort to release simple, streamlined APIs, we spend a lot of time poring over every aspect of our types.One of the types that we know is getting used a lot both internally and externally is LazyInit<T>.  One of LazyInit<T>’s constructors takes in a LazyInitMode enum which allows you to initialize a value in one of...