【发布时间】:2019-05-03 04:02:18
【问题描述】:
当我用 Task.Wait 调用下面的方法 DoRestCall 时,经过的时间基本上显示为 0(好吧,它显示 3ms)。我知道这是因为异步/等待模式。我想获得完成其余通话所需的实际时间。我想不出办法进入 HttpClient 来解决这个问题。
public static async Task DoRestCall()
{
HttpClient client = new HttpClient();
HttpResponseMessage response = await client.GetAsync("https://http://myrest.com");
if (response.IsSuccessStatusCode)
{
var sw = new Stopwatch();
sw.Start();
var x = await response.Content.ReadAsStringAsync();
sw.Stop();
Console.WriteLine($"{x.Length} {sw.ElapsedMilliseconds}");
}
}
【问题讨论】:
-
为什么只在请求后才启动秒表?您正在计时 ReadAsString 部分。异步不是这里的问题,只是秒表的位置。
标签: c# asp.net-core .net-core async-await