2014-02-25 26 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);