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.
这显示了已用完的总时间,但我需要显示在控制台中运行的时间。
我该怎么做?
答案 0 :(得分:4)
尝试
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');
}
答案 1 :(得分:3)
如果我理解正确,您希望在工作仍在进行时不断更新控制台上的时间跨度。那是对的吗?如果是这样,您将需要在单独的线程中执行工作,或者在单独的线程中更新控制台。我见过的最好的线程参考之一是http://www.albahari.com/threading/。
希望这有帮助。