The new async and await keyword in C# 5 is just syntactic sugar. Behind the scenes the code got rewritten to a state machine implementation. As both of .NET 4.0 and .NET 4.5 are using the same CLR, it should be possible to use the async functionality in .NET 4.0 too. AsyncBridge The first thing you could try is AsyncBridge. It's a NuGet package that lets you use the real VS 11 C#5 compiler to write code that uses the async and await keywords, but to target .NET 4.0. . You just add it to your project, and the compiler will pick it up and use it to implement async/await. The only requirement is that you also have Visual Studio 11 installed on your machine. The code is available here: https://github.com/OmerMor/AsyncBridge . It follows the same idea as LINQBridge , which let you use C# 3 LINQ, but only require .NET 2.0. Async Targeting Pack for Visual Studio 11 Another option you have (and an official one) is the Async Targeting Pack for Visual Studio 11 . (As the...