Как показать время работы в консоли? - PullRequest
4 голосов
/ 19 апреля 2011

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();

когда процесс остановится, я покажу время, ЗАВЕРШЕННОЕ, при этом:

TimeSpan ts = stopwatch.Elapsed;

... и это:

{0} minute(s)"+ " {1} second(s)", ts.Minutes, ts.Seconds, ts.Milliseconds/10.

это показывает общее время, прошедшее с начала, но мне нужно показать время в консоли.

Как я могу это сделать?

Ответы [ 2 ]

4 голосов
/ 19 апреля 2011

Попробуйте

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');
        }
3 голосов
/ 19 апреля 2011

Если я правильно понимаю, вы хотите постоянно обновлять временной интервал на консоли, пока работа еще продолжается.Это верно?Если это так, вам нужно будет либо выполнить работу в отдельном потоке, либо обновить консоль в отдельном потоке.Одна из лучших ссылок на потоки, которые я видел, это http://www.albahari.com/threading/.

Надеюсь, это поможет.

...