我想使用这个类从rest WebServices下载JSON数据:
public static class Extensions
{
public static Task<string> DownloadStringTask(Uri uri)
{
WebClient webClient = new WebClient();
var tcs = new TaskCompletionSource<string>();
webClient.DownloadStringCompleted += (s, e) =>
{
if (e.Error != null)
{
tcs.SetException(e.Error);
}
else
{
tcs.SetResult(e.Result);
}
};
webClient.DownloadStringAsync(uri);
return tcs.Task;
}
}但是我不知道如何调用这个函数。
还有其他函数用于下载JSON数据吗?
发布于 2014-02-12 09:57:28
它可以简单到:
var uri = new Uri("example.org");
var dl = Extensions.DownloadStringAsync(uri); -- starts download
// .. do something in the meantime
Console.WriteLine(dl.Result); --- wait for the download to complete您还可以使用async和await c#关键字:
public static async void DoDownload()
{
var uri = new Uri("example.org");
Console.WriteLine(await Extensions.DownloadStringAsync(uri));
}发布于 2014-02-12 09:56:27
就这样说吧:
它看起来像一个扩展方法,但不是。
Task<string> t = Extensions.DownloadStringTask(new Uri("http://foo.com"));
string s = t.Result;https://stackoverflow.com/questions/21724305
复制相似问题