Timer是单线程组件,其不会创建新线程,Tick事件是在由UI主线程触发,即,Tick事件相当于winform界面中的一个事件。
因此在Tick事件未处理完成之前,对界面的任何操作(或Timer的再次操作)都会引起界面的卡顿(因为需要等待未完成的事件完成)
参见MSDN:
This Windows timer is designed for a single-threaded environment where UI threads are used to perform processing.
因此,楼主的卡顿的问题可以采用:
1、尽量控制方法不复杂,并保证在规定时间内完成
2、使用其他线程(Timers/Threading中)的Timer