3

C# 中是否有一个类可以给我时钟滴答,方法消耗的秒数?我想我有两个将该功能包装在函数周围,以计时所占用的滴答声和秒数。

4

4 回答 4

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);

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

于 2010-12-09T13:50:08.090 回答
3

采用:

using System.Diagnostics;

...

var sw = Stopwatch.StartNew();
DoYaThing();
Console.WriteLine("{0} Elapsed", sw.Elapsed);
于 2010-12-09T13:50:33.100 回答
0

高分辨率计时器...

此外,iirc a TimeSpan可以为您提供滴答声的测量值。

于 2010-12-09T13:50:00.837 回答
0

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

于 2010-12-09T13:51:45.033 回答