System.Threading.Timer 是一个非常常用的定时器类,关于这个类的使用,我们需要注意以下几点:
1.System.Threading.Timer 的任何一个实例,实际上是通过使用win32底层(非.NET Thread Pool中的线程)来进行调度的。
2.当到达调度时刻时,System.Threading.Timer 将异步调用由TimerCallback参数指定的回调方法。也就是说TimerCallback所指向的方法将在.NET Thread Pool中的工作者线程中执行。
3.当.NET Thread Pool中没有空闲线程时,对TimerCallback所指向的方法的调用将被ThreadPool排队。而这并不会影响System.Threading.Timer的正常调度过程--当到达调度时间点,System.Threading.Timer仍然触发异步调用。
顺便补充一下,经过我的测试发现,ThreadPool中默认的最大工作线程数是25/CPU,最大完成端口线程数是1000。
时间: 2024-10-30 08:47:26