我有一个Windows服务应用程序,可以动态加载其他新appdomain中的其他模块。问题是它们都使用相同的静态数据库连接。我关闭服务时可以在主AppDomain中处理静态连接。但是如何在其他AppDomain中立即处理其他静态连接。问题是,由于其他连接仍然存在,服务应用程序仍然在任务管理器中运行,即使我完全停止它。
由于
答案 0 :(得分:1)
问题是他们都使用相同的静态数据库连接。
是的,这绝对是个问题。不要这样做。连接由.NET汇集,创建起来并不昂贵,因此正确的模式是在需要时创建它们,使用它们,并在完成后处理它们。这样做的有效方法是使用using
语句。
一般而言,无论创造一次性物体的是什么,都要负责处理它。由于您的一次性物品是静止的,因此无法知道处理它的原因是什么。所以你需要有逻辑来判断它是否已被处理,是否已经打开,是否为空等等。保持所有的创建更加清晰和处置逻辑在一个地方。