MVC3 アプリケーションにロング ポーリングを実装しようとしています。
ロング ポーリングは、次のコードで正常に動作します。スレッドがスリープしている間、問題なくページをリロードできます。
[AsyncTimeout(30 * 1002)]
public void TestAsync()
{
AsyncManager.OutstandingOperations.Increment();
var queued = ThreadPool.QueueUserWorkItem(new WaitCallback(parm =>
{
var wait = new AutoResetEvent(false);
wait.WaitOne(TimeSpan.FromSeconds(30));
AsyncManager.OutstandingOperations.Decrement();
}));
}
//--------------------------------------------------------------------------------
public ActionResult TestCompleted()
{
return Json(null);
}
//--------------------------------------------------------------------------------
しかし、アプリケーションでセッションを使用すると..
this.Session["XXX"] = "Test";
スレッドの実行中にページをリロードできません。ページは、スレッドの準備が整うまで待機し、その後ページが更新されます。
どうすればこの問題を解決できますか?