Many of us are still awaiting the many-core machines we keep reading about.   But, writing code for these systems really should begin today.   In practice, there’s not a tremendous difference in writing code that targets an 8-core machine versus one with 64-cores or even more.   Also, concurrent programming is not only about effective processor utilization, it’s also about dealing with asynchronous or latent operations.   Consequently, even in a web or “cloud” application environment, there exists a need for algorithms and code that simply does many-things simultaneously. 

See the MSDN Magazine portal and the following specific articles.

Simplify Asynchronous Programming with Tasks

Asynchronous programming lets you run expensive operations concurrently without blocking the UI thread. We’ll show you three simple techniques for implementing asynchronous operations in your code.

 

Throttling Concurrency in the CLR 4.0 ThreadPool

The trend toward many-core architectures and parallel apps has resulted in many changes to the CLR 4.0 ThreadPool. If you’re emphasizing concurrency in new apps or adding it to old ones, or making use of ASP.NET or Parallel Extension technologies, this is for you.