首页 > 解决方案 > C#中的时序过程

问题描述

我正在 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;
     }
}

标签: c#timingdiagnosticsbenchmarking

解决方案


我不确定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());

推荐阅读