The tick events are handled through messages sent via the message pump. In
the case of windows forms timer events, the messages can build up and
saturate the pipeline causing the code to run badly. Once the message
pipeline is full, new messages cannot be added so possibly many messages,
not just timer events, will be missed. Up to a certain limit, all messages
will be recorded and the performance will just degrade noticably.
Using the System.Timers.Timer you can have timer messages handled on another
thread. This is more accurate but should still not use a handler that takes
longer than the timer interval, at least, not without some sort of
synchronization mechanism.
Generally, you should ensure that timer handlers of all types are quick and
efficient and use as few resources as possible.

Signature
Bob Powell [MVP]
Visual C#, System.Drawing
Ramuseco Limited .NET consulting
http://www.ramuseco.com
Find great Windows Forms articles in Windows Forms Tips and Tricks
http://www.bobpowell.net/tipstricks.htm
Answer those GDI+ questions with the GDI+ FAQ
http://www.bobpowell.net/faqmain.htm
All new articles provide code in C# and VB.NET.
Subscribe to the RSS feeds provided and never miss a new article.
> If the code in the tick event of a windows forms timer control takes so
> long to run that it is still running when the next tick event occurs, what
> happens? Is the second tick event ignored?
>
> Thanks,
> Carl