C# Task.Factory.StartNew()Taskscheduler参数
见:C# Task.Factory.StartNew()Taskscheduler参数,c#,.net-4.0,C#,.net 4.0,见: 当我想让一个任务长时间运行并且可以取消时,如果我从ui调用这个方法,我如何传递taskscheduler参数?问题并不明显。为什么你不能直接打电话: CancellationToken token = new CancellationToken(false); TaskScheduler scheduler = TaskScheduler.Default; Task task = taskFactory.StartNew(action, token,
当我想让一个任务长时间运行并且可以取消时,如果我从ui调用这个方法,我如何传递taskscheduler参数?问题并不明显。为什么你不能直接打电话:
CancellationToken token = new CancellationToken(false);
TaskScheduler scheduler = TaskScheduler.Default;
Task task = taskFactory.StartNew(action, token,
TaskCreationOptions.LongRunning, scheduler);
我已经修改了我的问题,当我从ui线程调用这个方法时,这个方法可以安全通过吗?考虑到这是一项长时间运行且阻塞的任务。@本尼:您的问题本身还不是很清楚,因为它没有提到TaskScheduler.Default。但是是的,TaskScheduler。可以从UI线程指定默认值,但任务本身不会在UI线程上运行。抱歉,我只是想确保在指定TaskScheduler时。默认值从UI线程,任务不会阻止UI线程,谢谢。