Exemplo n.º 1
0
	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;
	}
Exemplo n.º 2
0
	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;
	}