C# 任务状态等待激活-这意味着什么?

C# 任务状态等待激活-这意味着什么?,c#,task,C#,Task,我用下面的方法开始wpf任务 var newTask = Task.Factory.StartNew(() => { fcStartSubPageCrawl(srMainSiteURL, srMainSiteId); }).ContinueWith((t) => { var aggException = t.Exception.Flatten(); foreach (var exception in aggException.InnerExceptions) csPage

我用下面的方法开始wpf任务

var newTask = Task.Factory.StartNew(() =>
{
fcStartSubPageCrawl(srMainSiteURL, srMainSiteId);
}).ContinueWith((t) =>
{
  var aggException = t.Exception.Flatten();
 foreach (var exception in aggException.InnerExceptions)
   csPages.LogException(exception.ToString());
},
TaskContinuationOptions.OnlyOnFaulted);
现在当我检查任务状态时

如下所示(分配给任务列表的新任务):

我看到任务状态=等待激活

这是什么意思?为什么等待激活


C#4.0 WPF

WaitingForActivation是任务在调用Start方法和任务调度器调度任务之间的停留时间。因此,在调用任务的start方法之后,任务状态将直接设置为WaitingForActivation,并调用scheduler.AddWork。在这里,任务是调度程序(WaitingToRun)或immidatly运行


哦,这与WPF无关,任务是BCL的一部分

如何使任务立即开始?这是由于您的声明继续。这将创建一个新任务,您可以将该任务分配给var newTask。但是,当原始任务不会产生异常时,此任务永远不会被调度或运行。您应该首先将原始任务分配给newTask,然后调用newTask.ContinueWith(..,TaskContinuationOptions.OnlyOnFaulted);谢谢你的回答。我目前的方式也很有效。这不像永远等待。然而,我修改了你说的代码,现在我检查我看到运行。虽然我没有感觉到任何速度差异。还是一样。这是关于抓取网页的。如果任务现在处于睡眠状态,它的状态是否返回到WaitingForActivation?
  if (tskLocalTaskList[i].IsCompleted == false)