Asp.net mvc 4 如何在MVC.NET中取消任务

Asp.net mvc 4 如何在MVC.NET中取消任务,asp.net-mvc-4,task-parallel-library,Asp.net Mvc 4,Task Parallel Library,我有一个页面有两个命令“RUN”“Cancel”。 我的问题:当点击“取消”从任务进入“运行”取消时,怎么能取消 任务:开始一项任务 取消:退出任务TryTask CancellationTokenSource source = new CancellationTokenSource private async Task TryTask() { Task<int> task = Task.Run(() => slowFu

我有一个页面有两个命令“RUN”“Cancel”。 我的问题:当点击“取消”从任务进入“运行”取消时,怎么能取消

任务:开始一项任务 取消:退出任务TryTask

CancellationTokenSource source = new CancellationTokenSource

        private async Task TryTask()
        {
            Task<int> task = Task.Run(() => slowFunc(1, 2), source.Token);

            // (A canceled task will raise an exception when awaited).

            source.Cancel();
            await task;
        }

        string someString = string.Empty;

        public int slowFunc(int a, int b)
        {
            for (int i = 0; i < 200000000; i++)
            {
                someString += "a";
                    source.Cancel();                    
                source.Token.ThrowIfCancellationRequested();
            }

            return a + b;
        }


        public async Task<ActionResult> Cancel()
        {
            "how cancel slow function"
        }
CancellationTokenSource=新的CancellationTokenSource
专用异步任务TryTask()
{
Task Task=Task.Run(()=>slowFunc(1,2),source.Token);
//(已取消的任务在等待时将引发异常)。
source.Cancel();
等待任务;
}
string someString=string.Empty;
公共int slowFunc(int a、int b)
{
对于(int i=0;i<200000000;i++)
{
someString+=“a”;
source.Cancel();
source.Token.ThrowIfCancellationRequested();
}
返回a+b;
}
公共异步任务取消()
{
“如何取消慢速功能”
}

MVC不是为完成这种工作而设计的。您能使用信号器吗?在IIS 8上部署时信号器取消事件无效。。但在iis7.5中没有问题的工作。