C# 周期计时器在运行61次后意外停止

C# 周期计时器在运行61次后意外停止,c#,C#,下面的直接定期计时器(应无限期运行)在运行61次后立即停止。如果我更改为,情况也是如此。从分钟(10): 我在两个带有.NET4.5的Windows8 64位系统上试用了它。程序是从命令shell编译和运行的。这是一个bug还是我遗漏了什么?我相信,由于运行时优化并确定方法中不再引用timerevirey5变量,您的计时器正在被垃圾收集。。。尝试将其设置为静态变量,并查看是否解决了该问题。或者调用GC.KeepAlive(timerevirey5)

下面的直接定期计时器(应无限期运行)在运行61次后立即停止。如果我更改为
,情况也是如此。从分钟(10)


我在两个带有.NET4.5的Windows8 64位系统上试用了它。程序是从命令shell编译和运行的。这是一个bug还是我遗漏了什么?

我相信,由于运行时优化并确定方法中不再引用
timerevirey5
变量,您的计时器正在被垃圾收集。。。尝试将其设置为静态变量,并查看是否解决了该问题。或者调用
GC.KeepAlive(timerevirey5)
编辑:根据此链接:参见第一个示例,因为它是一个类似的问题。引用示例:

// If the timer is declared in a long-running method, use 
// KeepAlive to prevent garbage collection from occurring 
// before the method ends. 
//GC.KeepAlive(aTimer);

Renan-请参阅此链接:@Renan No,GC知道代码中不再使用
TimeRevirey5
,因此它可能会收集它。23457的特殊性出奇。
// If the timer is declared in a long-running method, use 
// KeepAlive to prevent garbage collection from occurring 
// before the method ends. 
//GC.KeepAlive(aTimer);