实用工具的主要逻辑是这样的功能:System.DateTime.Now是给坏的结果
private void Run()
{
DateTime startTime = DateTime.Now;
Prepare();
Search();
Process();
DateTime endTime = DateTime.Now;
TimeSpan duration = endTime.Subtract(startTime);
Console.WriteLine("Run took {0:00}:{1:00}:{2:00}",
(int)duration.TotalHours, duration.Minutes, duration.Seconds);
}
当我运行此我可以用我自己的眼睛看到它正在采取至少5秒(Process()
方法会喷出控制台输出,我可以观察5-6秒的情况)。但它报告“运行了00:00:01”。
我不希望时间有微秒精度,但为什么这里完全不准确?
更新: 以下建议我也跑了StopWatch
同期和反对减去2 DateTime
相比,也调试的代码。这两种方法同意一小部分秒......调试器中的StopWatch
有1139毫秒。我的假设是,不知何时写入控制台的时间不包括在内,但我无法支持它(或反驳它)。
您是否尝试过调试它? – 2013-03-13 11:45:32
我想你应该使用[Stopwatch](http://msdn.microsoft.com/en-us/library/system.diagnostics.stopwatch%28v=vs.80%29.aspx),并看看[这里](http://stackoverflow.com/questions/8754018/recommended-method-to-calculate-the-difference-between-two-timespans/8754105#8754105) – V4Vendetta 2013-03-13 11:45:49
你知道'System.Diagnostics.Stopwatch'类? – spender 2013-03-13 11:45:52