The short form of this question: When, if ever, is it appropriate to use the Forms.Timer in a multithreaded WinForms application?
More specifically, I am architectin
MSDN had a comparison article that does the subject justice.
I agree with what Mehrdad and David said, but you should be aware that timers offer no guarantee of timeliness or order or execution. Too many timers and the application will just hang ;-)
Forms.Timer registers the timer to send a message when the timer goes off. The event raised is treated like a GUI event. System.Threading.Timer uses a thread blocking approach. Basically, you should use Forms.Timer for your GUI oriented timers (to add some effects to the user interface) and Threading.Timer for scheduling tasks and other things.