如何调用委托

时间:2012-04-08 19:49:28

标签: c#

我有以下代码

public class Test
{
  public static long Method1(Action a)
  {
        var s = Stopwatch.StartNew();
        a.Invoke();
        s.Stop();
        return s.Elapsed.TotalMilliseconds;
  }
}

在另一个班级 我是怎么称呼这个

            double elapsed = 0;

            for (int i = 0; i < 100000; i++)
            {


                elapsed+= (TestHelper.Timer(() => session.SaveTransaction(transaction)));
            }
            Debug.WriteLine(string.Format("avg execution time is {0} ms", elapsed/100000));

不编译。呼叫代码应该如何?

1 个答案:

答案 0 :(得分:3)

两个问题:

  • 您正在测量单次调用;一般来说,你应该花时间批次调用,否则测量速度可能太快(或者至少不到一毫秒)。
  • 当您实际意味着TimeSpan.Milliseconds时,您正在使用TimeSpan.TotalMilliseconds;否则,如果你已经超过一秒,它仍然会报告0到999之间的值。