public:
TimerHelper()
{}
- TimerHelper(DWORD first, DWORD interv, ITimerSink* pTS) : firstTime(first), interval(interv), currentTime(first), pTimerSink(pTS)
+ TimerHelper(DWORD id, DWORD first, DWORD interv, ITimerSink* pTS)
+ : ID(id)
+ , firstTime(first)
+ , interval(interv)
+ , currentTime(first)
+ , pTimerSink(pTS)
{
- ID = first;
}
+
~TimerHelper()
{
}
- void Setup(DWORD first, DWORD interv, ITimerSink* pTS)
+ void Setup(DWORD id, DWORD first, DWORD interv, ITimerSink* pTS)
{
+ ID = id;
firstTime = first;
interval = interv;
currentTime = first;
pTimerSink = pTS;
- ID = first;
}
DWORD Invoke()
return currentTime;
}
+ DWORD ID;
DWORD firstTime;
DWORD interval;
DWORD currentTime;
ATL::CComPtr<ITimerSink> pTimerSink;
- DWORD ID;
};
} //namespace flash
if(pTimerHelper != 0)
{
- pTimerHelper->Setup(vtimeMin.ulVal, vtimeInterval.ulVal, pTimerSink);
+ static tbb::atomic<DWORD> NEXT_ID;
+ pTimerHelper->Setup(++NEXT_ID, vtimeMin.ulVal, vtimeInterval.ulVal, pTimerSink);
*pdwCookie = pTimerHelper->ID;
bHasNewTiming_ = true;