c# - 局部范围的定时器的预期行为是什么?

标签 c# .net timer garbage-collection

具体来说,如果您在本地范围内创建一个 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/

相关文章:

c# - Entity Framework - 一对一 - ReferentialConstraint 映射到存储生成的列

c# - 如何将 XML 数据传递给在 Web 浏览器控件中运行的网页?

.net - 如何增加.NET 的堆大小?

c# - 计时器上耗时?

c - PIC32MZ 上的 Microchip Harmony 时序问题

c# - 在 .net Web 浏览器控件中突出显示文本

c# - 服务实例将保持挂起状态,直到在出现错误异常类型初始值设定项后以管理方式恢复或终止

c# - 为属性设置默认值并使其可序列化

c# - 本地实现的 Azure 功能无法在云端运行

java - 我怎样才能在java中做出暂停选项