当我开始某个过程时,我会使用 DateTime.Now 并将其记为 StartTime。
在稍后的过程中,我从 DateTime.Now 中减去 StartTime 来计算这两者之间经过的时间 - 在开始时间和当前时间之间。
现在,问题是这种方法并不总是准确的——在处理过程中,时间可能会被窗口使用时间服务器更改,甚至可能由用户手动更改。
是否有其他一些方法来测量所描述的时间,这些方法总是能正常工作——即使同时改变了窗口时间?
你可以利用这个:Get time of Code Execution Using StopWatch
Stopwatch stopWatch = new Stopwatch();
stopWatch.Start();
//instead of this there is line of code that you are going to execute
Thread.Sleep(10000);
stopWatch.Stop();
// Get the elapsed time as a TimeSpan value.
TimeSpan ts = stopWatch.Elapsed;
string elapsedTime = String.Format("{0:00}:{1:00}:{2:00}.{3:00}",
ts.Hours, ts.Minutes, ts.Seconds,
ts.Milliseconds / 10);
Console.WriteLine(elapsedTime);
Console.ReadLine();
使用秒表。
var a = Stopwatch.StartNew(); // Initializes and starts running
var b = new Stopwatch(); // Initializes and doesn't start running
var c = a.Elapsed; // TimeSpan
a.Stop();
a.Start();
a.Reset();
秒表本身就像一块手表,所以它不依赖计算机的时钟。只需从头开始,然后检查 Elapsed 以查看已经过去了多少时间。