我有一些要移植到 Windows 8 WinRT 的现有代码。代码从 URL 获取数据,异步调用传递的委托(delegate):
private void RequestData(string uri, Action<string> action)
{
var client = new WebClient();
client.DownloadStringCompleted += (s,e) => action(e.Result);
client.DownloadStringAsync(new Uri(uri));
}
转换为 WinRT 需要使用 HttpClient
和异步方法。我已经阅读了一些关于异步/等待的教程,但有点困惑。我怎样才能更改上面的方法,同时保持方法签名以避免更改更多我的代码?
最佳答案
private async void RequestData(string uri, Action<string> action)
{
var client = new WebClient();
string data = await client.DownloadStringTaskAsync(uri);
action(data);
}
关于c# - 将 WebClient 方法转换为异步/等待,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13240915/