Martin Nowak wrote:
You are aware though that in your timer, the callback is executed from within a different thread.
Yes. User should be aware of this different thread and should perform synchronization manually. Anyway, it is possible to relay callbacks to a queue and then one can wait for events on that queue.
(This timer class was designed to handle thousands of concurrent timers.)