Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
如果我设法将 NHibernate 会话配置为每个线程,那么当我处理来自线程池的线程中的数据时,这会起作用吗?
池中的线程被“回收”(是吗?)所以如果一个线程已经被使用过一次并且它再次被调用,它的会话会不会单独可用?
正确处理ISession完全掌握在您手中,您有责任。不是线程池。因此,如果您使用每个线程的会话实例,您仍然应该知道(并管理)它何时创建,并且明确关闭和处置。
ISession
如果该ISession管理到位,则不必担心线程池的问题。另一方面,这也意味着,在[ThreadStatic]现场打开和保持会话 - 是不正确的:
[ThreadStatic]
简短摘录:
线程池(通过设计)使线程在调用之间保持活动状态。这意味着 ThreadStatic 变量将在对 QueueUserWorkItem 的调用之间保持不变。