我应该重新使用定时器还是按需分配新定时器?许多睡觉计时器 timer.Change(Timeout.Infinite, Timeout.Infinite) 消耗资源?
timer.Change(Timeout.Infinite, Timeout.Infinite)
P.S:我说的是 System.Threading.Timer 级
System.Threading.Timer
不,在.NET框架的当前实现中,更改为无限超时的计时器不会消耗系统资源(用于存储实例本身的内存除外),因为它们实际上已从内部计时器队列中删除:
if (dueTime == Timeout.UnsignedInfinite) { TimerQueue.Instance.DeleteTimer(this); success = true; }
引自reference source
1 回答
不,在.NET框架的当前实现中,更改为无限超时的计时器不会消耗系统资源(用于存储实例本身的内存除外),因为它们实际上已从内部计时器队列中删除:
引自reference source