具体来说,如果您在本地范围内创建一个 Timer 实例,然后从该范围返回:
1)定时器还会执行吗?
2) 什么时候进行垃圾回收?
我提供了这两种情况:
Timer timer = new Timer(new TimerCallback((state) => { doSomething(); }));
timer.Change((int)TimeSpan.FromSeconds(30), (int)TimeSpan.FromSeconds(30));
return;
和
Timer timer = new Timer(new TimerCallback((state) => { doSomething(); }));
timer.Change((int)TimeSpan.FromSeconds(30), Timeout.Infinite);
return;
最佳答案
TimerCallback
引用了方法 DoSomething()
,因此(在您的示例中)指向 this
但没有实时引用以另一种方式进行,因此它应该被收集……最终
关于c# - 局部范围的定时器的预期行为是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6154376/