首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WP8 Task<string> DownloadString

WP8 Task<string> DownloadString
EN

Stack Overflow用户
提问于 2014-02-12 09:52:44
回答 2查看 306关注 0票数 0

我想使用这个类从rest WebServices下载JSON数据:

代码语言:javascript
复制
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数据吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-02-12 09:57:28

它可以简单到:

代码语言:javascript
复制
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

您还可以使用asyncawait c#关键字:

代码语言:javascript
复制
public static async void DoDownload() 
{
     var uri = new Uri("example.org");
     Console.WriteLine(await Extensions.DownloadStringAsync(uri));            
}
票数 2
EN

Stack Overflow用户

发布于 2014-02-12 09:56:27

就这样说吧:

它看起来像一个扩展方法,但不是。

代码语言:javascript
复制
Task<string> t = Extensions.DownloadStringTask(new Uri("http://foo.com"));
string s = t.Result;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21724305

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档