关于TaskScheduler.FromCurrentSynchronizationContext&的使用。 Task.Factory.StartNew()

时间:2013-11-15 19:56:51

标签: c# winforms task-parallel-library

我是MS TPL的新手。所以我看到有些时候人们在使用TaskScheduler.FromCurrentSynchronizationContext开始执行任务时使用Task.Factory.StartNew(),并且当人们开始执行任务时,某些时间TaskScheduler无效。

var uiScheduler = TaskScheduler.FromCurrentSynchronizationContext();
            Task.Factory.StartNew(() =>
            {
            });

Task.Factory.StartNew(() =>
            {
            });

所以请有人告诉我TaskScheduler有什么用?何时TaskScheduler应与Task.Factory.StartNew一起使用,何时不应使用TaskScheduler

请使用小样本代码进行说明,以便更好地了解TaskScheduler的使用情况。

另一个问题我们如何在创建任务时如何安排任务,如何指定任务需要启动的时间或日期或日期。感谢

1 个答案:

答案 0 :(得分:2)

如果您希望给定任务在UI线程上运行,请使用uiScheduler作为给定TaskScheduler。如果您希望任务在线程池线程中运行(这是默认行为),请不要提供任何TaskScheduler或提供TaskScheduler.Default