Microsoft.Bcl.Async approach