Question

I looking to run a method periodically but would like to optimise my code by having it run in a separate thread. So far my code looks something like below:

private System.Timers.Timer timerQuartSec = new System.Timers.Timer(250);
private Thread quarterSecThread;

timerQuartSec.Elapsed += new System.Timers.ElapsedEventHandler(someMethod);

quarterSecThread = new Thread(new ThreadStart(timerQuartSec.Start));

My question is, would this code simply start the timer or would the code (on TimerElapsed) run on the new Thread?

Was it helpful?

Solution

System.Timers.Timer will run on a ThreadPool thread as long as you don't set the timer's SynchronizingObject.

So there's no need to start a dedicated thread. You need to pay attention though if you want to access GUI elements.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top