如何在控制台中显示运行时间



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/.

希望这能有所帮助。

最新更新