unsigned int TimerThread::RegisterTimer(unsigned int initialDelay,unsigned int elapse, TimerHandler *pHandler, bool persistent) { TimerInfo info; info.elapse = elapse; info.outTime = 0-initialDelay; info.pTimerHandler = pHandler; info.persistent = persistent; kpr::ScopedLock<kpr::Mutex> lock(m_mutex); info.id = GetNextTimerID(); m_timers[info.id] = info; return info.id; }
UINT AddTimer(UINT ElapseInMilli, ITimerManagerEvents *Sink) { CCriticalSectionLocker Locker(m_ClientsLock); if (!Sink) { LogEvent(LE_ERROR, "CTimerWnd::AddTimer: Sink=NULL\n"); return 0; } int NewID = GetNextTimerID(); ClientData NewClient(NewID, Sink, ElapseInMilli); m_ClientVector.push_back(NewClient); #ifdef _DEBUG m_ClientVector.reserve(1000); #endif return NewClient.TimerID; }