当执行change()时是不是每次运行都应用的行的线程?
当前去我每500毫秒执行一次当执行结束之后还执行N多次回调函数
而且根本无法结束

解决方案 »

  1.   

    System.Timer.Timer和System.Threading.Timer:   
    前者是通过调用Windows的WaitableTimer实现的,后者是.NET的简单的Thread.Sleep实现。两个实现都是用了.NET线程池(ThreadPool),所以Elapsed事件会在ThreadPool里选择一个线程执行。好处是如果前一次Elapsed没有完成,后一次的可以从ThreadPool里选一个新的线程开始执行