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?

有帮助吗?

解决方案

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.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top