Windows 服务变量生存期



我想了解Windows服务上的变量生存期。

我有一个 SQL 表,其中的临时表存储我的应用程序的流入和流出记录。

我声明了两个全局变量,如下所示,并为该变量分配临时表中的行 ID。int iTempKeyInflow = 0;int iTempKeyOutflow = 0;

经过的时间内,我是否会丢失服务在上一次运行中处理的此值。

基本上,如果计时器在一个周期的执行完成之前过期,那么服务周期是否仍然在后台运行。那么我可以在一秒钟内处理表中的 100 条记录吗?

Windows 服务不会比任何其他程序引入更多的生命周期复杂性。唯一的区别是它在后台安静地运行。

实现 Windows 服务的 .NET 应用程序继承 ServiceBase 类并重写 OnStart 方法。这就是 API 的范围。OnStart 方法负责其他所有事情 - 如果它只是退出,那么服务也会退出。如果它生成一个新的后台线程或任务来执行其工作,则该线程将继续存在。

当该方法退出时,OnStart 中定义的变量将超出范围。在类作用域或从 OnStart 调用的类的作用域中定义的一个将绑定到该类实例的生存期。

如果不知道定义变量的确切位置,我们无法告诉您它们的生存期,但作为 Windows 服务运行很可能不是决定性因素。

最新更新