【发布时间】:2011-07-11 05:03:54
【问题描述】:
由于线程被 ThreadPool 反复重用,我不知道何时关闭每个线程的 NHibernate 会话以释放用完的资源。
我应该生成自己的线程(以确保它们是唯一的)还是使用 ThreadPool 有更好的方法来做到这一点?
【问题讨论】:
标签: c# .net multithreading nhibernate thread-safety
由于线程被 ThreadPool 反复重用,我不知道何时关闭每个线程的 NHibernate 会话以释放用完的资源。
我应该生成自己的线程(以确保它们是唯一的)还是使用 ThreadPool 有更好的方法来做到这一点?
【问题讨论】:
标签: c# .net multithreading nhibernate thread-safety
我看不到问题所在。您可能需要在问题中详细说明或添加一些代码。
每个线程都有自己的方法。只需在方法的开头分配会话并在最后清理它。使用线程池线程时也是如此。
不要忘记将所有线程代码包装在 try/catch 中,否则如果未处理异常,您的应用程序将崩溃。
【讨论】:
我会设置它,以便每个线程有一个会话。这可能是确保您不会遇到线程终止另一个线程正在使用的会话的问题的最简单方法。
【讨论】: