C#中是否有一个类可以给我一个时钟滴答,一个方法消耗的秒数?我想我有两个功能包围功能,以计算时间和秒数。
答案 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.Ticks
或TimeSpan.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)
另外,iirc a TimeSpan可以给你一个回滴测量。
答案 3 :(得分:0)
您可以查看[System.TimeSpan]
类并将其包装在您的方法周围。