Я разрабатываю приложение, используя WPF
и 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 секунд (как только она начинается, выполнение выполняется быстро, как обычно).
Я не понимаю, почему задача так долго не запускается? Можно ли как-то повлиять на приоритет задачи, чтобы она запускалась сразу во всех сценариях? Я предполагаю (это только предположение), что задача запланирована планировщиком задач для выполнения позже? Есть ли способ заставить задачу запускаться немедленно все время?
LongRunning
. Это своего рода злоупотребление, но оно, скорее всего, сработает. docs.microsoft. com/en-us/dotnet/api/ - person mjwills   schedule 19.11.2018