我应该重用计时器还是按需分配新计时器?许多睡眠计时器timer.Change(Timeout.Infinite, Timeout.Infinite)
会消耗资源吗?
PS:我说的是System.Threading.Timer
课
答案 0 :(得分:3)
否,在.NET Framework的当前实现中,更改为无限超时的计时器不会消耗系统资源(用于存储实例本身的内存除外),因为实际上它们是从内部计时器队列中删除的:
if (dueTime == Timeout.UnsignedInfinite)
{
TimerQueue.Instance.DeleteTimer(this);
success = true;
}