【发布时间】:2016-05-16 18:54:39
【问题描述】:
System.Timers.Timer timer= new System.Timers.Timer(1);
timer.AutoReset = true;
timer.Elapsed += (s, e) =>
{
Console.WriteLine("fired");
};
timer.Start();
该事件始终在调试模式下触发,而在发布模式下始终不触发。我尝试禁用编译器优化,但没有帮助。
我正在尝试在 asp.net mvc 应用程序 .net 4.6 框架中运行它
【问题讨论】:
-
Console.WriteLine是否可能无法在发布模式下工作?我之所以问是因为我遇到了 Console.WriteLine 在一种配置中记录到 VS 输出窗口但在另一种配置中没有(从未弄清楚原因)的问题。在你责怪计时器之前可能值得检查一下。 -
您确定甚至运行代码块以在释放模式下启动计时器吗?另外,您将问题标记为 asp.net,也许您的应用程序域正在关闭?
-
如何确定我的计时器正在运行?我知道它是以正确的间隔创建的。另外,我不确定这是否与asp有关,但我认为额外的信息不会受到伤害。我的应用程序域在发布时被关闭但在调试中没有被关闭是否有意义?
-
您是否在代码中使用了编译器指令?
-
不确定你的意思,但我尝试添加注释以防止编译时优化,但没有帮助
标签: c# asp.net-mvc timer