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; } }
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; } }
public Timer(DurationCallback callbackDelegate) { m_updateCallback = callbackDelegate; m_timerState = TIMER_STATE.TS_START; }