Need to make your .NET applications more responsive? Run faster? On today's multicore hardware, async and parallel programming may be the answer. This course (part 2 of 2) discusses the safe and efficient design of asynchronous and parallel .NET applications. It builds upon the introduction provided in part 1 ("Introduction to Asynchronous and Parallel Programming in .NET 4"), offering more details into the inner workings of the Task Parallel Library, the dangers of concurrent execution, and the higher-level abstractions available in the TPL to help you. The course closes by weaving these concepts together and presenting common patterns for building fast, correct parallel software. This course is for anyone working in .NET 4 or Silverlight 5.