ここにJavaサーブレットを話しています...私は自分の "Per Request Context"を作成していますが、 "Per Request Context"オブジェクトをThread.currentThread()。getId()値に結びつけようとしていました。ThreadId経由でスレッドの終了を検出するにはどうすればよいですか?
このコンテキストオブジェクトをどこにでも渡すのではなく、ユーザーがPer Requestベースの関数を呼び出し、そのスレッドIDのハッシュテーブルからContextオブジェクトを自動的に取得するときに、現在のスレッドIDをチェックする予定でした。
私はこのようなコードを使用します..私は()ExitContextを呼び出さない任意の潜在的なユーザから自動的に自分のアプリケーションを保護したいと思いますしかし
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
MyFramework.EnterContext();
try {
// do stuff here that leads to other classes on the same thread
// Access current context via static MyFramework.getCurrentContext()
}
finally { MyFramework.ExitContext(); }
}
。
C#では、スレッドオブジェクトにイベントハンドラが1x ...
(私は間違っていると思いますが)スレッドが終了したときに検出またはポーリングする方法がありますか?私は現在、threadId(long)のみを格納しています。
アイデア?
あなたはここにいると思います。 1つは、スレッドでやっていることが間違っていると思います。サーブレットのコンテキスト内で作業する必要があります。 – ControlAltDel
ServletContextは、システムを使用するすべてのユーザー用です。 HttpSessionは現在のユーザー用です。私が必要とするのは、 "Per Request"コンテキスト、つまり同じユーザーの複数の要求です。私はフレームワークがページ上の複数の場所で使用され、非同期のロードが可能なシチュエーションを避けようとしています。使用される情報は要求ごとになるため、同時に実行されます。 – xer21