0
ここに私のコードスレッド同期は
public ActionResult Index()
{
ViewBag.Message = "Welcome to ASP.NET MVC!";
Thread t1 = new Thread(DoLengthyOperation);
t1.Start();
return View();
}
public ActionResult About()
{
//Check if thread t1 is completed or not, if not keep waiting.
return View();
}
public void DoLengthyOperation()
{
Thread.Sleep(10000);
}
私は何をしたいことです
1)
を待っているポイントがないので、そのプロセスは何も返さないよう、ホームアクションで長いプロセスを開始します 2)私の "About"アクションで、プロセスが "Home"アクションを終了したかどうかをチェックしたい場合は、終了してから終了します。
私は静的インスタンスを試しましたが、それは同時に要求に役立ちません
私もグローバル変数を試してみましたが、すべての要求がコントローラの新しいコピーを取得するので役立たなかった。
私の究極の目標は、ユーザーがインデックスページを見ているときです。私の長いプロセスはバックグラウンドで終了するはずです。プロセスは20秒かかります。
すべてのヘルプは
おかげ
ありがとう@Tyson、タスクはセッションごとです。何がlongRunningTask変数のスコープになりますか? – Nnp
セッション状態でそれを保存します。上記の編集を参照してください。感謝@tyson – Tyson
。私は今TempDataに格納しています。 – Nnp