タスク メカニズムを使い始めたのですが、作成方法がわかりません。
- 仕事を始める方法
- これをキャンセルするためにもう1つ。
同じメソッドから作成とキャンセルを行うと機能します (StartTask のコメント化されたコードのように)。
しかし、CancelTask メソッドを使用すると機能しません。(ジョブは回転し続け、taskProgress は増加し続けます)。
フレームワークのバージョンは .NET 4 で、プロジェクトは ASP.NET MVC 3 です
よろしくお願いします!
private static int taskProgress = 0;
public CancellationTokenSource ts = new CancellationTokenSource();
public ActionResult StartTask()
{
Task.Factory.StartNew(() =>
{
while (true)
{
if (ts.IsCancellationRequested)
break;
Thread.Sleep(100);
taskProgress++;
}
}, ts.Token);
//Thread.Sleep(3000);
//ts.Cancel();
return RedirectToAction("GetTaskProgress");
}
public ActionResult CancelTask()
{
ts.Cancel();
return Content("Cancelled (percentage="+taskProgress.ToString()+")");
}
public ActionResult GetTaskProgress()
{
return Content(taskProgress.ToString());
}