2012-03-09 13 views
1

XMLを受け取って返すASP.NET ASPXページがあります。HTTPコンテキストを保持するASP.NET呼び出しでスレッドを作成します。

このファイルで処理できる要求の種類には、外部サーバーと並行して通信して結果を集約するタスクが含まれているものがあります。これは、この作業を実行するための新しいスレッドを作成し、それぞれにHTTPコンテキストを渡すことによって行います。

HTTPコンテキストはスレッドセーフではなく、常に各スレッドでNULLとして処理されます。コンテキストは、XSLTオブジェクトをキャッシュするために必要です。そのため、各要求内の各スレッドは、毎回ディスクから読み取る必要はありません。キャッシュは実際には機能しませんでした。

私は、異なる方法でキャッシュするようにワーカーコードを変更したり変更したりするコンテキストのいくつかの形式を渡して、異なるスレッド化を行うかのどちらかを行うことを検討しています。

は、私は最も適切であろう、これを固定する方法、またはこれらのいずれかを行うための最善の方法はよく分かりません。どんな入力も高く評価されます。

答えて

0

ワーカースレッド間で共有されるコンテキストを使用して、独自のコンテキストタイプのインスタンスを作成できます。

私はあなたがして、特定のセッションでそのコンテキストオブジェクトを共有したいと仮定します。あなたは次のいずれかの方法でこれを行うことができます:

  • ストア、それがためにユニークなキーを持つ静的なコレクションに各セッション。

  • セッションで保存します。

  • は、セッションごとにユニークなキーとASP.NETのキャッシュに保管してください。

達成しようとしていることについての詳細情報がないと、何が最善のものかをアドバイスすることが難しいです。

関連する問題