首页 文章

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

提问于
浏览
4

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

P.S:我说的是 System.Threading.Timer

1 回答

  • 3

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

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

    引自reference source

相关问题