C#我需要显示进程运行的时间,显示增加的秒数,通常为:00:00:01、00:00:02、00:00:03……等等。
我使用的是这个代码:
var stopwatch = new System.Diagnostics.Stopwatch();
stopwatch.Start();
//here is doing my process
stopwatch.Stop();
当进程停止时,我显示时间ELAPSED,并显示如下:
TimeSpan ts = stopwatch.Elapsed;
这个:
{0} minute(s)"+ " {1} second(s)", ts.Minutes, ts.Seconds, ts.Milliseconds/10.
这显示了经过的总时间,但我需要显示控制台中运行的时间。
我该怎么做?
尝试
Stopwatch stopwatch = new Stopwatch();
stopwatch.Start();
while (true)
{
Console.Write(stopwatch.Elapsed.ToString());
Console.Write('r');
}
更新
防止显示毫秒:
Stopwatch stopwatch = new Stopwatch();
stopwatch.Start();
while (true)
{
TimeSpan timeSpan = TimeSpan.FromSeconds(Convert.ToInt32(stopwatch.Elapsed.TotalSeconds));
Console.Write(timeSpan.ToString("c"));
Console.Write('r');
}
如果我理解正确,您希望在工作仍在进行时不断更新控制台上的时间跨度。这是正确的吗?如果是这样,您将需要在一个单独的线程中完成工作,或者在一个独立的线程中更新控制台。我见过的关于线程的最好的参考之一是http://www.albahari.com/threading/.
希望这能有所帮助。