Converting a WebClient method to async / await
private async void RequestData(string uri, Action<string> action) { var client = new WebClient(); string data = await client.DownloadStringTaskAsync(uri); action(data); } See: http://msdn.microsoft.com/en-us/library/hh194294.aspx