With reference to this quote from MSDN about the System.Timers.Timer:
The Timer.Elapsed event is raised on a ThreadPool thread, so the event-handl
Seems timer is not thread safe. You must keep all calls to it in sync via locking. lock(object){} is actually just short hand for a simple monitor call.