每个线程的NHibernate会话是否适用于线程池?

每个线程的NHibernate会话是否适用于线程池?,nhibernate,session,threadpool,Nhibernate,Session,Threadpool,如果我设法将NHibernate会话配置为每个线程,那么当我处理来自线程池的线程中的数据时,这会起作用吗 池中的线程是“回收的”(是吗?),因此,如果一个线程已经使用过一次,并且再次被调用,那么它的会话是否不能单独使用?会话的正确处理完全掌握在您的手中,由您负责。不是线程池。因此,如果您使用每个线程的会话实例,您仍然应该知道(并管理)它是何时创建的,并且它是显式地关闭和释放的 如果i会话管理到位,就不用担心线程池的问题。另一方面,这也意味着在[ThreadStatic]字段中打开和保持会话是不正

如果我设法将NHibernate会话配置为每个线程,那么当我处理来自线程池的线程中的数据时,这会起作用吗


池中的线程是“回收的”(是吗?),因此,如果一个线程已经使用过一次,并且再次被调用,那么它的会话是否不能单独使用?

会话的正确处理完全掌握在您的手中,由您负责。不是线程池。因此,如果您使用每个线程的会话实例,您仍然应该知道(并管理)它是何时创建的,并且它是显式地关闭和释放的

如果
i会话
管理到位,就不用担心线程池的问题。另一方面,这也意味着在
[ThreadStatic]
字段中打开和保持会话是不正确的:

简短摘录:

线程池(按设计)使线程在调用之间保持活动状态。 这意味着ThreadStatic变量将在调用之间保持不变 将用户工作项排队