C#.net 中静态变量的生存期是多少



我创建了一个控制台应用程序,我在任务计划程序中将其计划为作业。我的应用程序中有一个类级静态变量,下面是示例代码。当我的作业第一次运行时,没有问题。当我立即重新运行作业时,我收到"对象引用"错误,因为我在 finally 块中将其设置为 NULL 并在 try 块中执行"sb.clear()" - 静态变量将只初始化一次。

Class Temp
{
   public static StringBuilder sb = new StringBuilder();
   try
   {
       sb.clear();
       ... some code
   }
   catch
   {}
   finally
   {
      sb = null
   }
}

我的任务计划程序作业将每 24 小时运行一次。由于我将变量设置为 NULL,因此在首次运行一段时间后会进行垃圾回收吗?这样,当我的作业在 24 小时后第二次运行时,我就不会遇到"对象引用"错误(考虑到将再次创建静态变量)。

我想知道如果我将其设置为 NULL,则静态变量的生命周期是多少,如果不是,则将其设置为 NULL。请澄清。

静态变量的生存期与应用程序运行时一样长。在此处查看更多详细信息:

范围和持久性静态变量中数据的生存期

我希望这些信息有用

sb.clear();//这不能用于空字符串生成器在本例中,最后将 sb 变量设置为 null。所以不要使用 最后

最新更新