C#中的任何类都可以告诉我时钟滴答,函数占用的秒数

时间:2010-12-09 13:47:46

标签: c# seconds

C#中是否有一个类可以给我一个时钟滴答,一个方法消耗的秒数?我想我有两个功能包围功能,以计算时间和秒数。

4 个答案:

答案 0 :(得分:11)

您可以使用System.Diagnostics.Stopwatch类。

Stopwatch sw = new Stopwatch();
sw.Start();

// Your method call here...

sw.Stop();

// Get the elapsed time
TimeSpan elapsed = sw.Elapsed;

从这里开始,您可以使用TimeSpan.TicksTimeSpan.TotalSeconds属性分别确定经过的刻度或经过的秒数。

如果您愿意,您可以使用以下几行中的方法在功能周围“包裹”该功能,正如您所提到的(只是一个想法,您可能想要调整此代码以满足您的特定目的 - - 传递参数等):

public static T ExecuteWithElapsedTime<T>(Func<T> function, out TimeSpan elapsedTime)
{
   T rval;

   Stopwatch sw = new Stopwatch();
   sw.Start();
   rval = function();
   sw.Stop();
   elapsedTime = sw.Elapsed;

   return rval;
}

你可以这样称呼它(myFunc是一个返回int的函数):

TimeSpan elapsed;
int result = ExecuteWithElapsedTime(myFunc, out elapsed);

可能更简单但是甚至不打扰这样的方法,只需将秒表代码与方法调用内联。

答案 1 :(得分:3)

使用:

using System.Diagnostics;

...

var sw = Stopwatch.StartNew();
DoYaThing();
Console.WriteLine("{0} Elapsed", sw.Elapsed);

答案 2 :(得分:0)

high resolution timer ...

另外,iirc a TimeSpan可以给你一个回滴测量。

答案 3 :(得分:0)

您可以查看[System.TimeSpan]类并将其包装在您的方法周围。