如何解决加载时异步下载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 举报,一经查实,本站将立刻删除。