2011-04-19 148 views
3

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. 

這個節目的總時間過去了,但我需要顯示時間在控制檯中運行。

我怎樣才能做到這一點?

回答

3

嘗試

Stopwatch stopwatch = new Stopwatch(); 
stopwatch.Start(); 
while (true) 
{ 
    Console.Write(stopwatch.Elapsed.ToString()); 
    Console.Write('\r'); 
} 

UPDATE

爲了防止毫秒顯示:

 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'); 
     } 
+0

確定。那麼我怎麼能隱藏這個毫秒?只能說明時:分:秒 – ale 2011-04-19 14:20:22

+0

使用'stopwatch.Elapsed.ToString( 「HH:MM:SS」)' – Aliostad 2011-04-19 14:24:32

+0

不是穿線工作....... – ale 2011-04-19 14:28:57

3

如果我理解正確的話,你是想不斷更新的控制檯,而時間跨度工作仍在繼續。那是對的嗎?如果是這樣,您需要在單獨的線程中完成工作,或者在單獨的線程中更新控制檯。我見過的最好的參考之一是http://www.albahari.com/threading/

希望這會有所幫助。

+0

+1 – 2011-04-19 14:05:38

相關問題