The event that is called by the timer will be executed in the same thread to which the timer belongs, and, therefore, it will block this thread when any logic is executed. This means that if Timer belongs to a GUI layer, executing the Timer.Tick method will block the GUI while it is running.
To maintain performance in the main thread, I suggest using BackgroundWorker instead, which runs its own thread in it.
Øyvind Bråthen
source share