c#检测某些动作时间的最佳方法

时间:2015-05-21 18:17:15

标签: c# datetime

我尝试执行以下操作:

    public class TimerTest
    {
        private DateTime start;

        public TimerTest()
        {
            start = DateTime.Now;
        }

        public TimerTest(string message)
        {
            Debug.WriteLine("DEBUG: " + message);
        }

        public void Finish(string message)
        {
            var time = DateTime.Now - start;

            var timeWent = String.Format("{0}.{1} sec.", time.Seconds, time.Milliseconds.ToString().PadLeft(3, '0'));

但看起来这是错误的方式......

2 个答案:

答案 0 :(得分:3)

您的构造函数重载

public TimerTest(string message)
{
    Debug.WriteLine("DEBUG: " + message);
}

甚至没有初始化时间变量。你的意思是这个构造函数是......

public TimerTest(string message)
{
    Debug.WriteLine("DEBUG: " + message);
    start = DateTime.Now;
}

答案 1 :(得分:2)

我认为部分问题在于您没有为每次通话实例化新的开始时间,因此您只是记录实例化该时间的差异。

如果你真的想要准确读取代码执行所需的时间,那么最好的选择之一是Stopwatch类,如下所述:

https://fedoraproject.org/wiki/Upgrading_Fedora_using_yum