如题。
不要这种方法:
DateTime t1, t2; TimeSpan t3; t1 = DateTime.Now; // Code t2 = DateTime.Now; t3 = t2 - t1;
因为如果我在代码执行期间修改了系统时间,结果就会不准确。
那么该如何解决?
你好
或者你可以考慮使System.Diagnostics.Stopwatch
E.G.
System.Diagnostics.Stopwatch s = new System.Diagnostics.Stopwatch(); s.Start(); //Your Code s.Stop(); MessageBox.Show(s.Elapsed.Seconds.ToString());
Please correct me if my concept is wrong
请避免使用使用 DateTime 和 TimeSpan 类型类判断某个操作的执行时间。原因是,DateTime 的精度只能达到 1/64 秒,还有其正确性也不是 100% 符合其精度。在评估某些操作的时间时,特别是操作时间小于 100 毫秒的时候,DateTime 可能无法精确计算间隔时间。请总是考虑用 Stopwatch 来进行时间间隔评估。99% 的开发人员不知道 DateTime 的精度和正确性问题。
关于 DateTime 精确度和正确性的问题,请参考 http://blogs.msdn.com/b/ericlippert/archive/2010/04/08/precision-and-accuracy-of-datetime.aspx。