在单步调试的时候TimeSpan和StopWatch的值会有很大差别,可是如果断点设置在方法末尾直接运行到断点地方,这时再看TimeSpan和StopWatch的值相等,即使不等差距也很小?求解释,万分感激!
Stopwatch stopWatch = new Stopwatch();
stopWatch.Start();
DateTime startTime = DateTime.Now;
Thread.Sleep(1000);
stopWatch.Stop();
DateTime endTime = DateTime.Now;
TimeSpan timeSpan = startTime.Subtract(endTime).Duration();
int timeSpanDValue = (int)timeSpan.TotalMilliseconds;
int stopWatchTimeDValue = (int)stopWatch.ElapsedMilliseconds;
差距大是因为你执行到stopWatch.Stop();的时候,stopWatch停止计时,而执行到DateTime endTime = DateTime.Now;的时候,timeSpan的结束时间才确定,这中间的一段时间就是时间差。
如果直接运行,间隔的时间将会很短,所以两个值没什么差别,而如果使用单步调试,那么这个间隔可能会很长。
单步调试时差距是多少?你隔多长时间按一下键盘?
这么弱智的问题,断点调试肯定会有时间差,你如果隔天才按下一步,它会差一天的。
空马车,虚