2010-07-24 96 views

回答

9

问题并不明显。为什么你不能只是打电话:

CancellationToken token = new CancellationToken(false); 
TaskScheduler scheduler = TaskScheduler.Default; 
Task task = taskFactory.StartNew(action, token, 
           TaskCreationOptions.LongRunning, scheduler); 
+0

我修改了我的问题,这是安全的通过。默认情况下,当我从ui线程调用此方法?考虑到这是一个长期运行和阻塞的任务。 – Benny 2010-07-24 07:58:52

+0

@ Benny:你的问题本身还不是很清楚,因为它没有提到TaskScheduler.Default。但是,是的,TaskScheduler.Default可以从UI线程中指定 - 但是该任务本身不会在UI线程上运行。 – 2010-07-24 08:05:33

+0

对不起,我只是想确保当我从UI线程指定TaskScheduler.Default时,任务不会阻塞UI线程,谢谢。 – Benny 2010-07-24 08:10:05

相关问题