如何记录使用c#执行的方法的持续时间、开始时间和结束时间?
例如,我点击一个按钮,它会做一些事情。一旦开始,我将获得开始时间,然后当执行完成时,我将获得结束时间以及完成所需的持续时间。
最佳答案
您可以使用 Stopwatch ,位于 System.Diagnostics
命名空间中。
这具有普通秒表的功能,具有 Start
、Stop
、Reset
、ElapsedMilliseconds
等
这非常适合测量特定代码块或方法。但是,您确实声明除了执行持续时间之外还需要开始时间和结束时间。您可以通过继承 Stopwatch
类并使用几个 DateTime
属性扩展它来创建自定义秒表。
public class CustomStopwatch : Stopwatch
{
public DateTime? StartAt { get; private set; }
public DateTime? EndAt { get; private set; }
public void Start()
{
StartAt = DateTime.Now;
base.Start();
}
public void Stop()
{
EndAt = DateTime.Now;
base.Stop();
}
public void Reset()
{
StartAt = null;
EndAt = null;
base.Reset();
}
public void Restart()
{
StartAt = DateTime.Now;
EndAt = null;
base.Restart();
}
}
然后像这样使用它:
CustomStopwatch sw = new CustomStopwatch();
sw.Start();
Thread.Sleep(2342); // just to use some time, logic would be in here somewhere.
sw.Stop();
Console.WriteLine("Stopwatch elapsed: {0}, StartAt: {1}, EndAt: {2}", sw.ElapsedMilliseconds, sw.StartAt.Value, sw.EndAt.Value);
关于c# - C#中方法的持续时间,时间开始和时间结束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23948349/