With the .NET 4.6 runtime out of experimental status with active support for async/await, is adding async APIs on the roadmap anywhere? It makes a lot more sense to be using it than IAsyncOperation. Both will generate about the same amount of GC allocated garbage, the use case doesn't generate constant garbage, and async/await proactively avoids calback hell. There is the option of writing an extension method to convert IAsyncOperations into Tasks, which I've previously done with the older AsyncOperation, but honestly would rather have this supported in first party APIs rather than skirting around the issue. As for not breaking support for .NET 3.5 projects, perhaps put these in conditional compilation blocks?