Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Multithreading 如何在c#中使用不同的请求取消正在运行的任务?_Multithreading_C# 4.0_Asp.net Mvc 5 - Fatal编程技术网

Multithreading 如何在c#中使用不同的请求取消正在运行的任务?

Multithreading 如何在c#中使用不同的请求取消正在运行的任务?,multithreading,c#-4.0,asp.net-mvc-5,Multithreading,C# 4.0,Asp.net Mvc 5,我已在Start task按钮上启动了一项任务,单击并想使用cancel task按钮取消该任务>。但我无法找到并取消正在运行的任务 public ActionResult StartTask() { var tokenSource = new CancellationTokenSource(); CancellationToken ct = tokenSource.Token; Task.Factory.StartNew(() =>

我已在
Start task
按钮上启动了一项任务,单击并想使用
cancel task
按钮取消该任务>。但我无法找到并取消正在运行的任务

public ActionResult StartTask()
{
        var tokenSource = new CancellationTokenSource();
        CancellationToken ct = tokenSource.Token;

        Task.Factory.StartNew(() =>
        {
          // do some work...
        }, tokenSource.Token);

        return view();
}

public ActionResult CancelTask()
{
   //Here i want to cancel above task.
   return view();
}

提前感谢…

请尝试将CancellationToken作为第二个参数传递给Task.Factory.StartNew

CancellationToken ct = tokenSource.Token;

    Task.Factory.StartNew(() =>
    {
            // do some work...

            if (ct.IsCancellationRequested)
            {
                // another thread decided to cancel
                Console.WriteLine("task canceled");
                break;
            }
    }, ct);
并发出tokenSource.Cancel()以取消

注意:在这里可以找到类似的线程