System.Web.UI.Timer is a ASP.NET control and you can ignore it.
System.Windows.Forms.Timer is a single thread timer for UI thread and lower accuracy(per 55ms);
System.Threading is also a single thread timer for worker thread(or thread pool threads) but not for UI thread;
System.Timers.Timer is a server based timer, it is thread safe, higher accuracy.
Now the conclusion:
For UI, not high accuracy, System.Windows.Forms.Timer;
For background/worker thread, System.Threading.Timer;
For components serving as a server application, System.Timers.Timer;
Or you may also construct your own timer for more accurate options by p-invocation;
System.Windows.Forms.Timer is a single thread timer for UI thread and lower accuracy(per 55ms);
System.Threading is also a single thread timer for worker thread(or thread pool threads) but not for UI thread;
System.Timers.Timer is a server based timer, it is thread safe, higher accuracy.
Now the conclusion:
For UI, not high accuracy, System.Windows.Forms.Timer;
For background/worker thread, System.Threading.Timer;
For components serving as a server application, System.Timers.Timer;
Or you may also construct your own timer for more accurate options by p-invocation;