C#重用计时器与分配新计时器

时间:2018-12-09 15:26:10

标签: c#

我应该重用计时器还是按需分配新计时器?许多睡眠计时器timer.Change(Timeout.Infinite, Timeout.Infinite)会消耗资源吗?

PS:我说的是System.Threading.Timer

1 个答案:

答案 0 :(得分:3)

否,在.NET Framework的当前实现中,更改为无限超时的计时器不会消耗系统资源(用于存储实例本身的内存除外),因为实际上它们是从内部计时器队列中删除的:

if (dueTime == Timeout.UnsignedInfinite)
{
    TimerQueue.Instance.DeleteTimer(this);
    success = true;
}

引自reference source