我创建了一个控制台应用程序,我在任务计划程序中将其计划为作业。我的应用程序中有一个类级静态变量,下面是示例代码。当我的作业第一次运行时,没有问题。当我立即重新运行作业时,我收到"对象引用"错误,因为我在 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。所以不要使用 最后