2014-02-25 50 views
0

我試圖找出算法找到某些字段所需的時間以及每個記錄值之間的時間間隔。例如:使用秒錶的時間間隔測試

算法開始:0.0

實測第一字段:2.56ms總經過時間:2.56ms

實測第二字段:2ms的總時間經過:4.56ms

....等

我想使用秒錶類和錄製已用時間,但時間不會改變之間找到x1和x2它只是輸出所有的x1時間。我該如何做這樣的事情?

感謝

+1

表現出一定的代碼,否則我們不可能知道爲什麼它不工作。 – Brandon

+0

您需要使用2個秒錶。一個秒錶會佔用整個時間,另一個則需要在每個區域後重置。 – Sebi

+0

如果時間沒有改變,它可能比秒錶可以計數的速度快。是什麼讓你認爲輸出不正確?無論採用哪種方式,您都應該發佈一些代碼,以便我們可以看到您正在做的事情 - 有六種方法可以編寫這些代碼,並且您收到的任何建議/更正將假定您使用過哪一個。 –

回答

2

使用stopwatch.Reset()你獲得經過時間之後。 這樣的:

Stopwatch sw = new Stopwatch(); 
Stopwatch swTotal = new Stopwatch(); 

swTotal.Start(); 
sw.Start(); 
//first action 
sw.Stop(); 
Console.WriteLine("Elapsed 1 = " + sw.Elapsed.ToString()); 
sw.Reset(); 
//second action 
Console.WriteLine("Elapsed 2 = " + sw.Elapsed.ToString()); 
swTotal.Stop(); 
Console.WriteLine("Total = " + swTotal.Elapsed.ToString()); 
+1

是的,這是我需要的!我需要重新設置,然後重新開始。我認爲已經過去的時間記錄了線被執行時秒錶的運行時間。謝謝! – kknaguib

0

這裏有一些我在每個方法中使用的代碼:

TimeSpan ts = sWElapsed.Elapsed; 
sWElapsed.Reset(); 
sWElapsed.Start(); 
string elapsedTime = String.Format("{0:00}:{1:00}:{2:00}.{3:00}", 
             ts.Hours, ts.Minutes, ts.Seconds, 
             ts.Milliseconds/10); 
Console.WriteLine("LP count: " + countLp + " Time Elapsed: " + elapsedTime); 

的代碼來記錄這一切:

sWTotal.Stop(); 
sWElapsed.Stop(); 

TimeSpan ts = sWTotal.Elapsed; 
string elapsedTime = String.Format("{0:00}:{1:00}:{2:00}.{3:00}", 
       ts.Hours, ts.Minutes, ts.Seconds, 
       ts.Milliseconds/10); 

Console.WriteLine("Deal complete. Total # of Lp's: " + countLp + " Time to complete collection: " + elapsedTime);