2012-11-29 75 views
1

的执行时间我可以使用秒表找到的代码执行时间查找递归函数

例子:

timer.Start(); 
for(int i=0; i<100; i++) 
{ 
    ... 
} 
timer.Stop(); 
lTime.Text = timer.Elapsed.TotalMilliseconds.ToString(); 

但如果我调用使用递归函数?

timer.Start(); 
recur(a, b); 
timer.Stop(); 
lTime.Text = timer.Elapsed.TotalMilliseconds.ToString(); 

其显示的执行时间为0

编辑:此代码运行良好...我在递归函数一个错误...

+6

将你的计时器放到调用递归函数的方法中。 –

+0

不要使用'定时器' - 使用['Stopwatch'](http://msdn.microsoft.com/en-us/library/system.diagnostics.stopwatch.aspx) – Oded

+0

@Oded我使用秒表我只是叫计时器 – a1204773

回答

1

对我来说,以下工作:

using System.Diagnostics; 

namespace StackOverflow.Demos 
{ 
    class Program 
    { 
     public static void Main(string[] args) 
     { 
      Stopwatch timer = new Stopwatch(); 
      timer.Start(); 
      recur(10000, new object()); 
      timer.Stop(); 
      Console.WriteLine(timer.Elapsed.TotalMilliseconds.ToString()); 
      Console.ReadKey(); 
     } 
     private static void recur(int a, object b) 
     { 
      if (a > 0) 
       recur(--a, b); 
     } 
    } 
} 
+1

是的,它真的工作...我的代码只是有一些错误.. – a1204773

+0

不用担心 - 如果你想解决你的代码问题的手张贴在一个新的问题:)。 – JohnLBevan