我是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
的使用情况。
另一个问题我们如何在创建任务时如何安排任务,如何指定任务需要启动的时间或日期或日期。感谢
答案 0 :(得分:2)
如果您希望给定任务在UI线程上运行,请使用uiScheduler
作为给定TaskScheduler
。如果您希望任务在线程池线程中运行(这是默认行为),请不要提供任何TaskScheduler
或提供TaskScheduler.Default
。