【发布时间】:2012-11-17 22:38:56
【问题描述】:
如果例程通过System.Threading.Timer 定期运行,如何防止该例程由于主机应用程序终止而中途中止?
【问题讨论】:
-
定时器归应用所有;如果应用程序终止,计时器也会终止。如果您的应用程序正常关闭,您可以向计时器例程发出信号以进行清理,但如果有人强制中止应用程序,您无能为力。
-
@Joe: 有没有办法让计时器线程继续当前的迭代然后终止?
-
@CJ7:如果应用程序的一部分没有完成,根据定义,应用程序也没有完成。
-
@Vlad:应用程序在技术上是否“完成”不是我关心的问题。我需要的是防止计时器例程被中断,因为它可能无法完成必要的数据库更新等。我不介意这是否在主机应用程序似乎已终止后继续运行。
-
如果有人拔掉插头怎么办?您应该为事情在您期望完成的一切完成之前终止的可能性做好准备,完成。在正常的终止情况下,您应该能够向计时器线程发出信号以立即结束。
标签: .net multithreading timer