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。

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

4

1 回答 1

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);
        }
    }
}
于 2012-11-29T14:21:07.350 回答