示例#1
0
 public void StartLogging()
 {
     while (true)
     {
         LogTime(m_timerState);
         // 1 sec = 1000 milliseconds
         Thread.Sleep(1000 * 60 * 5); // 5 minutes
         m_timerState = TIMER_STATE.TS_UPDATE;
     }
 }
示例#2
0
        public void LogTime(TIMER_STATE state)
        {
            long dPrevTick = readVal(Tick);

            DateTime now     = DateTime.Now;
            string   dateVal = now.ToShortDateString();

            long ticks = now.Ticks;

            switch (state)
            {
            case TIMER_STATE.TS_START:
            {
                // set tick count to start time
                WritePrivateProfileString(dateVal, Tick, ticks.ToString(), fileName);
                //update textbox control for duration value
                UpdateControl();
            }
            break;

            case TIMER_STATE.TS_UPDATE:
            case TIMER_STATE.TS_END:
            {
                TimeSpan prvTickTimeSpan = new TimeSpan(dPrevTick);
                TimeSpan diff            = new TimeSpan(now.Subtract(prvTickTimeSpan).Ticks);

                //update duration
                long     duration     = readVal(Duration_Tick);
                TimeSpan currDuration = diff.Add(new TimeSpan(duration));

                string sDuration = currDuration.ToString();
                if (sDuration.IndexOf('.') > -1)
                {
                    sDuration = sDuration.Remove(sDuration.IndexOf('.'));
                }

                m_updateCallback(sDuration);                                                                // generate callback for Form1 to upate its textbox*/

                WritePrivateProfileString(dateVal, Duration, sDuration, fileName);                          //total duration
                WritePrivateProfileString(dateVal, Duration_Tick, currDuration.Ticks.ToString(), fileName); //duration tick count
                WritePrivateProfileString(dateVal, Tick, ticks.ToString(), fileName);                       // Current time/tick count
            }
            break;
            }
        }
示例#3
0
 public Timer(DurationCallback callbackDelegate)
 {
     m_updateCallback = callbackDelegate;
     m_timerState     = TIMER_STATE.TS_START;
 }