Task Based Asynchronous Methods - These methods make it possible to utilize new "await" keyword available in .NET 4.5 and Visual Studio 2012.
Synchronization Context - Previously, events raised by asynchronous methods would run on a background thread, making them hard to use in GUI applications. Now, events are raised using the Synchronization Context captured when the method was started. This means it is possible to update controls directly from event code.