Does anyone know if this code would be thread safe, or do I have to use lock when calling timer2.Change?
Timer timer1 = new Timer(timerCallback1);
Timer timer2 =
Per MSDN documentation the Timer type is thread safe, so the only place you have to be careful is where you call DoStuff();.
It's "thread-safe" in the sense that the call to Change
won't actually corrupt the timer.
However, it's not "thread-safe" in the sense that you definitely have a race condition (it's not possible to ensure that timerCallback2
isn't running when you're in DoStuff
).