【发布时间】:2020-09-12 19:58:36
【问题描述】:
在加载应用程序时,我需要下载 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();
【问题讨论】:
-
您尝试做些什么来衡量这个?
-
同步是什么意思?你能举个例子吗?
-
意思是最好不要等第一个下载完成后再第二个下载完成
-
与其问我们,不如衡量和比较两种方法的结果似乎很简单
-
@SushiHangover 谢谢,听起来很棒。因为它只是一个小文件,我认为它不会影响 3 GET 100 或 200ko 的网络
标签: c# xamarin xamarin.forms dotnet-httpclient