System.Threading.Timer一段时间后不触发 [英] System.Threading.Timer not firing after some time

查看:1018
本文介绍了System.Threading.Timer一段时间后不触发的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个Windows服务应用程序。而在控制台模式下运行调试它。

I have a windows service application. And debugging it by running in console mode.

下面 http://support.microsoft.com/kb/842793 这是写的Timers.Timer有一个错误,而不是射击窗口服务。而解决方法是使用Threading.Timer 而这篇文章就是对.NET 1.0和1.1

Here http://support.microsoft.com/kb/842793 it is written that Timers.Timer has a bug and not firing in windows services. And workaround is to use Threading.Timer And this article is for .NET 1.0 and 1.1

我使用.NET 4,但过一段时间后Threading.Timer也不会触发。那么有什么方法可以这样做的原因是什么? 而且你可以提出一个解决办法?

I am using .NET 4 but after some time Threading.Timer also doesn't fire. So what can be the reason for this? And what can you suggest as a workaround?

谢谢

最好的问候

编辑:我改变定时器的Threading.Timer到Timers.Timer并且工作没有任何问题。

I changed timer from Threading.Timer to Timers.Timer and it is working without any problem.

推荐答案

您保持引用您的计时器某处prevent它被垃圾收集?

Are you keeping a reference to your timer somewhere to prevent it being garbage collected?

的文档

只要你使用的是定时器,你   必须保持对它的引用。与   任何托管对象,一个计时器受   当有垃圾回收   没有任何引用。一个事实,即   计时器仍处于活动状态并不prevent   它被收集

As long as you are using a Timer, you must keep a reference to it. As with any managed object, a Timer is subject to garbage collection when there are no references to it. The fact that a Timer is still active does not prevent it from being collected.

这篇关于System.Threading.Timer一段时间后不触发的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆