C#中方法的持续时间,时间开始和结束时间

Kur*_*rai 3 c# time duration execution

如何使用c#执行方法时,如何记录方法的持续时间,时间开始和结束时间?

例如,我点击一个按钮,它会做一些事情.一旦开始,我将获得开始时间,然后当执行完成时,我将得到时间结束以及完成所需的持续时间.

sch*_*ien 7

您可以使用驻留在命名空间中的秒表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();
        }

    }
Run Code Online (Sandbox Code Playgroud)

并像这样使用它:

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);
Run Code Online (Sandbox Code Playgroud)


小智 5

您可以使用System.Diagnostics.Stopwatch类来实现此目的。看样品

            // Create new stopwatch
            System.Diagnostics.Stopwatch stopwatch = new System.Diagnostics.Stopwatch();

            // Begin timing
            stopwatch.Start();

            // Tasks performed by method

            // Stop timing
            stopwatch.Stop();

            Console.WriteLine("Time taken : {0}", stopwatch.Elapsed);
Run Code Online (Sandbox Code Playgroud)