【问题标题】:Do NHibernate sessions per thread work with threadpool?每个线程的 NHibernate 会话是否与线程池一起使用?
【发布时间】:2013-01-17 01:46:09
【问题描述】:

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

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

【问题讨论】:

    标签: nhibernate session threadpool


    【解决方案1】:

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

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

    简短摘录:

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

    【讨论】:

      猜你喜欢
      • 2012-09-03
      • 2016-10-18
      • 2014-12-02
      • 2010-09-19
      • 1970-01-01
      • 1970-01-01
      • 2010-09-18
      • 2021-05-09
      • 1970-01-01
      相关资源
      最近更新 更多