Rejoice! Visual Studio 2010 Beta 2 is upon us and it includes lots of great changes for the Parallel Extensions. TPL guru Danny Shih has already covered what’s new in TPL and PLINQ aficionado Ed Essey has covered the best way to use LINQ (specifically between Beta 1 and Beta 2) but your favorite set of thread-safe collections and synchronization primitives are in on the action too.
Post by this author
If you’re going to PDC this year, we have four great talks on parallelism coming you’re way and, if you’re not, may we suggest you sign up?
We don’t have the exact dates of the talks yet (we’ll let you know when we do) but here are the talks you won’t want to miss!
Update: The survey is now closed. Thanks to all that participated!
We’ve heard our customers’ frustrations with asynchronous programming and their call for improved support. We are hoping to better understand why and how you and your customers use asynchronous programming in .NET and how the support we provide for it can be improved in the future.
In concurrent programs, race conditions are a fact of life but they aren’t all bad. Sometimes, race conditions are benign, as is often the case with lazy initialization.
The problem with racing to set a value, however, is that it can result in multiple objects being instantiated when only one is needed.
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.
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,
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 three modes:
We’re currently working on the Beta of .NET 4.0 (no dates to announce) and there are lots o’ new stuff for the Parallel Extensions. We hope you’re as excited about it as we are. Given that we have so much coming down the pipes,
The response to our initial post on this blog about Maestro has inspired us to give it its own blog.
If you’re not yet in the know, Maestro is a new incubation language from Microsoft’s Parallel Computing Platform team for safe and scalable parallel programming for .NET.
This post has been moved to a Maestro-dedicated blog. Please direct all comments and questions to the new blog. Thanks!