Search code examples
c#.netmultithreadingdesign-patternsparallel-processing

Parallel programming patterns for C#?


With Intel's launch of a Hexa-Core(6) processor for the desktop, it looks like we can no longer wait for Microsoft to make many-core programming "easy". I just order a copy of Joe Duffy's book Concurrent Programming on Windows. This looks like a great place to start, though, I am hoping some of you who have been targeting multi/many core systems would point me to some good resources that have or would have helped on your projects?


You have given some great answers but, let me add to what I mean by "good resources". Just because we have 6,12, or 48 cores doesn't mean that our applications will benefit from trying to use all of them. I keep hearing that the current programming paradigm is going to shift when we have a plethora of cores in our systems.

What blogs/books should I be reading to best understand the patterns and when to use them. Are there any good podcasts or webcasts that can help.


Here are a few links I have found interesting:

Generally Useful:

Multi-Threading:


Solution

  • Here are some options

    • F# has really good support for concurrent code
    • Parallel LINQ and Tasks in .NET 4 are useful abstractions.

    See the pfxteam blog for additional info on new parallel programming tools in .NET 4.