C#中的计时过程

时间:2018-07-16 19:14:37

标签: c# timing diagnostics benchmarking

我正在用LinqPad开发一个程序,该程序将清理文件并返回csv我好奇的信息。我需要跟踪某些进程执行所花费的时间,并试图使用Stopwatch方法执行该操作。

最终我想做的就是这样:

void main()
{
    T runTime = Timer(someProcess());
}

void someProcess(){...}

public static class Diagnostics
{
     …
     public static T Timer(???)
     {
         … (execute whatever we're timing)
         return T timeTookToExe;
     }
}

1 个答案:

答案 0 :(得分:2)

我不确定T应该是什么,但是您可以让Timer收到一个委托:

public static TimeSpan Timer(Action action)
{
     Stopwatch sw = new Stopwatch();
     sw.Start();
     action.Invoke();
     sw.Stop();

     return sw.Elapsed;
}

然后使用它,您将执行以下操作:

TimeSpan runTIme = Timer(() => someProcess());