2010-12-16 80 views
-1

我有一个多线程应用中,有这样的事情:NHibernate和多线程

线程1:

while(true) 
    { 
     //read data 

     //change and update 
      thread.sleep(500); 
    } 

线程2:

//UpdateDate from time to time based on an event from somewhere else.... 

仅在释放时间和它的应用程序崩溃指出在nhibernate“aftercommit”或某事崩溃的方法我认为它与线程和nhibernate有关,我可以通过禁用缓存或在nhib ernate。

有没有人遇到类似的东西?任何想法如何完全禁用缓存?

环境:

Windows7。 .net4 Nhibernate 2.1 Windows Forms nhibernate dataaccess由codesmith nhibernate模板生成。

+0

1.什么是例外? 2.您在哪里创建和处理会话(会话不是线程安全的)? 3.你使用无状态会话还是普通会话? – Paco 2010-12-16 22:22:58

回答

5

在nhibernate中线程安全的唯一工件是会话工厂。确保你没有在不同线程之间使用同一个会话。