wrote: timertimeElapse = new Timer();
Is the constructor being called on the main thread of a windows forms application? It's important that it is as the System.Windows.Forms Timer will not raise tick events unless the thread is running a message loop.
The two other timers, System.Threading.Timer and System.Timers.Timer, don't need a message loop, and you may need to use one of those.
This simple modification to your code will determine if a message loop in running on the calling thread.
"Cannot start Forms.Timer on thread without a message loop");
timertimeElapse = new Timer();