异步函数foo被调用 4 次,每次我们用.Result等待结果。using System;using System.Threading.Tasks;using System.Diagnostics;public class Program{ public static void Main(string[] args) { Stopwatch sm = new Stopwatch(); sm.Start(); var result1 = foo().Result; sm.Stop(); Console.WriteLine("duration 1 : " + sm.Elapsed.ToString()); sm.Reset(); sm.Start(); var result2 = foo().Result; sm.Stop(); Console.WriteLine("duration 2 : " + sm.Elapsed.ToString()); sm.Reset(); sm.Start(); var result3 = foo().Result; sm.Stop(); Console.WriteLine("duration 3 : " + sm.Elapsed.ToString()); sm.Reset(); sm.Start(); var result4 = foo().Result; sm.Stop(); Console.WriteLine("duration 4 : " + sm.Elapsed.ToString()); } public static async Task<int> foo() { await Task.Run(() => { var x = 0; for (int i = 0; i < 100; i++) { x++; } }); return 42; }}第一次通话比其他通话花费更多时间,例如:持续时间 1:00:00:00.0016609持续时间 2:00:00:00.0001197持续时间 3 : 00:00:00.0001045持续时间 4 : 00:00:00.0000632在最后一次调用之后调用另一个异步函数(例如与 foo 具有相同主体的函数 bar)将比第四次调用 foo 花费更多的时间。是什么原因?
- 1 回答
- 0 关注
- 130 浏览
添加回答
举报
0/150
提交
取消