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.