Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/292.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
C# Task.Factory.StartNew()Taskscheduler参数_C#_.net 4.0 - Fatal编程技术网

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线程,谢谢。