2

NHibernate セッションをスレッドごとに構成できた場合、スレッド プールからのスレッドでデータを処理するときに機能しますか?

プールからのスレッドは「リサイクル」されます (はい?) ため、スレッドがすでに一度使用されていて、それが再び呼び出された場合、そのセッションは単独で使用できなくなりますか?

4

1 に答える 1

3

の正しい取り扱いISessionは完全にあなたの手の中にあり、あなたは責任があります。ThreadPool ではありません。そのため、スレッドごとにセッション インスタンスを使用する場合でも、それがいつ作成され、明示的に閉じられて破棄されるかを把握 (および管理) する必要があります。

そのISession管理が整っていれば、スレッド プールの問題について心配する必要はありません。一方、セッションを開いて[ThreadStatic]フィールドに保持することは正しくないことも意味します。

短い抜粋:

スレッド プール (設計による) は、呼び出し間でスレッドを有効に保ちます。これは、QueueUserWorkItem への呼び出し間で ThreadStatic 変数が保持されることを意味します。

于 2013-01-17T06:03:05.890 に答える