Programming with Concurrency talks at the PDC....

From https://microsoft.sitestream.com/PDC05/, those talks are quite interesting if you're interested in multithreading and/or making your application more responsive:

FUN302: Programming with Concurrency (Part 1): Concepts, Patterns, and Best Practices

Speaker: Jan Gray
In this session, we present the increasing need for concurrency in modern applications, both to increase responsiveness of your applications and to improve performance and scalability on modern multi-processor and multi-core computer architectures. We start with fundamentals, including an exploration of parallel shared memory architectures and caches. We then move on to demonstrate some common mechanisms using which to express parallelism, and survey the landscape of technologies and best practices. Learn some of the do’s and don’ts of concurrent programming along the way, all based on real world examples. Lastly, we wrap up with a peek into the future of mainstream concurrency hot topics, giving insight into up and coming technologies to keep your eye on.
Start Session Download Presentation Download PowerPoint

FUN405: Programming with Concurrency (Part 2): Multithreaded Programming with Shared Memory

Speaker: Joe Duffy
In this session, see hands-on examples illustrating how best to achieve parallelism safely using multithreaded techniques on Windows Vista and “Longhorn” Server and the Common Language Runtime (CLR). We walk through some common scenarios, APIs, best practices and pitfalls, and take an in-depth look at both managed and native technologies such as threading on the CLR, Windows threads, and OpenMP. To protect your code from concurrency hazards, we discuss how Windows Vista and the CLR can help you handle deadlocks and other hangs as well as shared memory exhaustion. We touch on more advanced topics such as CLR explicit threading and the thread pool and asynchronous programming. Legacy issues that impact concurrent programming today such as COM and UI apartment threading and thread affinity are considered. You can expect to walk away from this session with the knowledge necessary to get started on writing efficient and reliable concurrent programs.
Start Session Download Presentation Download PowerPoint