我想了解Windows服务上的可变生命周期。
我有一个SQL表,其中临时表为我的应用程序存储INFLOW和OUTFLOW记录。
我声明了两个全局变量,如下面的变量,我从临时表中分配了行ID。 int iTempKeyInflow = 0; int iTempKeyOutflow = 0;
在经过的时间后,我会丢失服务在上一次运行中处理的值。
基本上,如果计时器在完成一个循环的执行之前到期,那么服务循环是否仍在后台运行。那么我可以在一秒钟内从表中处理100条记录吗?
答案 0 :(得分:1)
Windows服务不会引入任何其他程序的生命周期复杂性。唯一的区别是它在后台安静地运行。
实现Windows服务的.NET应用程序继承ServiceBase类并重写OnStart方法。这就是API的范围。 OnStart方法负责其他所有方法 - 如果它只是退出,那么服务也会退出。如果它产生一个新的后台线程或任务来执行它的工作,那么该线程将继续存在。
当该方法退出时,OnStart中定义的变量将超出范围。在类范围中定义的,或在从OnStart调用的类的范围中定义的,将与该类实例的生命周期相关联。
如果不确切知道您在哪里定义变量,我们无法告诉您它们的生命周期,但是作为Windows服务运行的可能性不会是决定因素。