我正在使用WPF
and开发一个应用程序C#
。我有以下代码:
var tokenSource = new CancellationTokenSource();
CancellationToken token = tokenSource.Token;
Task task = Task.Factory.StartNew(() =>
{
// Some action that returns a boolean - **CODE_A**
}).ContinueWith((task2) =>
{
result= task2.Result;
if (!result)
{
//Another action **CODE_B**
}
});
}, token);
通常CODE_A立即开始运行,不到一秒后, CODE_B开始执行。
但是,有时创建的任务需要Task.Factory.StartNew
超过 5 秒才能开始(一旦开始,执行就像往常一样快)。
我不明白为什么任务开始运行需要这么长时间?我可以以某种方式影响任务优先级,因此它会在所有情况下立即开始运行吗?我猜(这只是一个假设)任务是由任务调度程序安排的,以便稍后执行?有没有办法让我一直强制任务立即运行?