2011-07-11 55 views
-1

我在C#(System.Threading.Timer),它运行很好过了,而它的线程就这样消失一个计时器...时间线只是停止

无异常已被捕获,并且参考定时不丢失了(因此未被GC收集)

是否还有其他可能导致此问题的内容?

(我不能张贴在这里的代码)

感谢您的帮助:)

+3

1.给出一些代码来理解发生了什么。 2.检查是否在VS中启用了未处理的异常处理:Debug-> Exceptions。 – Tigran

+0

只是@Tigran文章的一个补充:要捕捉未处理的异常,请按如下方式调整VS:1)转至Debug - > Exceptions对话框并检查Common Language Runtime Exceptions并检查Thrown列中的复选框; 2)转到工具 - >选项 - >调试,并取消选中启用只是我的代码(仅管理)复选框。你看到这个例外吗? – platon

+2

你如何使用'Timer',它需要一个专用线程? (['Timer'的文档页面](http://msdn.microsoft.com/library/system.threading.timer.aspx)的备注的第一段说回调是* always *在线程池中运行。) – Richard

回答

2

即使里面回调你的代码是完全合法的人可能与你的项目和系统线程池线程错误地工作。 Threading.Timer使用ThreadPool线程来处理它们的回调,因此,您可能会用尽空闲线程来处理计时器回调。