As OriginalGriff wrote, the
System.Windows.Forms.Timer is a UI component. Usually you get it int your application by dragging one onto a
Form.
But you can instatiate it in code like you would do with every ordinary class. From any thread you like. You can then call it from that thread.
But I'd rather advise to leave those timers in UI thread because there are alternavies designed to be used in other thrads:
System.Timers.Timer and
System.Threading.Timer.
Of cause, if you initially used Forms.Timer because the timer call will do something in the UI, you will no longer be allowed to do that from the other timers' callback functions. Instead, you will have to add a layer of
invoking.
In essence, you will have to decide where to use invoke: Calls into the timer (if it is on UI thread) or out of the timer into UI thread.