2

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

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

4

1 回答 1

3

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

如果该ISession管理到位,则不必担心线程池的问题。另一方面,这也意味着,在[ThreadStatic]现场打开和保持会话 - 是不正确的:

简短摘录:

线程池(通过设计)使线程在调用之间保持活动状态。这意味着 ThreadStatic 变量将在对 QueueUserWorkItem 的调用之间保持不变。

于 2013-01-17T06:03:05.890 回答