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

moi*_*ien 5 c#

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

PS:我说的是System.Threading.Timer课堂

Cee*_* it 4

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

if (dueTime == Timeout.UnsignedInfinite)
{
    TimerQueue.Instance.DeleteTimer(this);
    success = true;
}
Run Code Online (Sandbox Code Playgroud)

引用自参考资料来源