首页 新闻 会员 周边

在单步调试的时候,为什么TimeSpan和StopWatch值差距会很大

0
悬赏园豆:5 [已解决问题] 解决于 2015-05-14 12:37

      在单步调试的时候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;

路漫漫,求索不息的主页 路漫漫,求索不息 | 菜鸟二级 | 园豆:299
提问于:2013-10-12 16:48
< >
分享
最佳答案
1

差距大是因为你执行到stopWatch.Stop();的时候,stopWatch停止计时,而执行到DateTime endTime = DateTime.Now;的时候,timeSpan的结束时间才确定,这中间的一段时间就是时间差。

如果直接运行,间隔的时间将会很短,所以两个值没什么差别,而如果使用单步调试,那么这个间隔可能会很长。

收获园豆:3
诶碧司 | 小虾三级 |园豆:1912 | 2013-10-12 17:57
其他回答(2)
1

单步调试时差距是多少?你隔多长时间按一下键盘?

收获园豆:1
Launcher | 园豆:45045 (高人七级) | 2013-10-12 16:59
-1

这么弱智的问题,断点调试肯定会有时间差,你如果隔天才按下一步,它会差一天的。

空明流光 | 园豆:106 (初学一级) | 2013-10-14 09:33

空马车,虚

支持(0) 反对(0) 路漫漫,求索不息 | 园豆:299 (菜鸟二级) | 2015-05-14 12:37
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册