代码之家  ›  专栏  ›  技术社区  ›  sarsnake

在C中显示每秒经过的时间时测量代码执行#

  •  0
  • sarsnake  · 技术社区  · 5 年前

     static System.Timers.Timer pXRFTimer = new System.Timers.Timer();       
      static int _pXRFTimerCounter = 0;
    
    
       private void ScanpXRF()
            {
                _pXRFTimerCounter = 0;
                pXRFTimer.Enabled = true;
                pXRFTimer.Interval = 1000;
                pXRFTimer.Elapsed += new ElapsedEventHandler(pXRFTimer_Tick);
                pXRFTimer.Start();
    
                //START action to be measured here!
                DoSomethingToBeMeasured();
    
            }
    
            private static void pXRFTimer_Tick(Object sender, EventArgs e)
            {
                _pXRFTimerCounter++;
    
                if (_pXRFTimerCounter >= 90)
                {
                    pXRFTimer.Stop();             
                }
                else
                {
                    //show time elapsed
                }
            }
    
    0 回复  |  直到 5 年前
        1
  •  0
  •   tmaj    5 年前

    DateTime startUtc;
    
    private void ScanpXRF()
    {
      startUtc = DateTime.NowUtc;
      (...)
    
      //START action to be measured here!
    }
    
    private static void pXRFTimer_Tick(Object sender, EventArgs e)
    {
      var elapsed = DateTime.NowUtc - startUtc;
      var elapsedSeconds = elapsed.TotalSeconds; // double so you may want to round.
    }