2013-08-25 72 views
1

我在c#中搜索的方法,它可以計算循環的持續時間或任何類似的事情,認爲我的程序包含或者「for(...,...,...){}」我需要多少時間,方法的輸出類型如何知道循環持續時間在c#

+1

你怎麼不能編寫自己的'StartTime-EndTime''TimeSpan'計算..? – MethodMan

+0

@DJKRAZE恐怕不會計算出我需要時間來表現的精確時間 – alex

+1

秒錶是下面最好的答案。 – DarthVader

回答

5

使用Stopwatch Class

提供一組我的您可以使用 精確測量已用時間。

Stopwatch stopWatch = new Stopwatch(); 
    stopWatch.Start(); 

    // stuff you want to time here... 

    stopWatch.Stop(); 

    // Get the elapsed time as a TimeSpan value. 
    TimeSpan ts = stopWatch.Elapsed; 

    // Format and display the TimeSpan value. 
    string elapsedTime = String.Format("{0:00}:{1:00}:{2:00}.{3:00}", 
     ts.Hours, ts.Minutes, ts.Seconds, 
     ts.Milliseconds/10); 
    Console.WriteLine("RunTime " + elapsedTime); 

通過計數計時器的經過時間的秒錶措施蜱在 底層計時器機制。如果安裝的硬件和操作系統支持高分辨率性能計數器,則秒錶類使用該計數器來測量已用時間。否則, 秒錶類使用系統計時器來測量已用時間。使用 的頻率IsHighResolution字段來確定精度 和秒錶計時實施的分辨率。

4
DateTime startingTime = DateTime.UtcNow; 

//Your loops go here 

DateTime endTime = DateTime.UtcNow; 

Timespan timeDifference = endTime - startingTime; 

double seconds = timeDifference.TotalSeconds; 

還有一個秒錶類,如果你需要更精確比

+0

讓我在一分鐘內。最好的選擇是 –

+0

是帶來milisecodns或更少的時間我知道有類似的東西在c + + – alex

+0

讓'OP'知道在TimeSpan行中,你有第二次使用DateTime.utcNow'變量等於' EndTime'有很多新的以及經驗豐富的開發人員,他們爲了創建一個'TimeSpan'而不是'StartTime - EndTime',總時間是'EndTime - StartTime' ... – MethodMan