微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

加载时异步下载json文件:是同时进行的吗?

如何解决加载时异步下载json文件:是同时进行的吗?

在加载应用程序时,我需要下载3个小于200kb的小json文件我有3种这样的方法

private static async Task<bool> DownloadOne()
    {
        using (var tokSource = new CancellationTokenSource(5000))
        {
            try
            {
                _httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
                var zurl = "URL");
                var response = await _httpClient.GetAsync(zurl,tokSource.Token);
                using (var stream = await response.Content.ReadAsstreamAsync())
                {
                    ar localFolder = System.Environment.GetFolderPath(System.Environment.SpecialFolder.LocalApplicationData);
                    var newpath = Path.Combine(localFolder,"one.json");
                    var fileInfo = new FileInfo(newpath);
                    using (var fileStream = fileInfo.OpenWrite())
                    {
                        await stream.copyToAsync(fileStream);
                    }
                }
            }
            catch (OperationCanceledException)
            {
                return false;
            }
            catch (Exception e)
            {
                return false;
            }               
        }
        return true;
    }

同时执行方法比执行方法更快吗?

await DownloadOne();
await DownloadTwo();
await DownloadThr();

解决方法

是的,有。您正在等待每个文件下载,然后再开始下载下一个文件。您可以并行运行所有程序,然后等待它们完成Task.WhenAll():

var tasks = new Task[]{DownloadOne(),DownloadTwo(),DownloadThr()};
await Task.WhenAll(tasks);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。