Task.Status表示虽然正在运行任务,但正在等待WaitingForActivation

时间:2019-08-20 13:50:08

标签: c# android asynchronous xamarin.forms

我对.Net中的Task.Status感到困惑。我同步运行2个任务,等待所有任务完成。代码很简单:

"variables": {
    "dnsservers": [
        "10.10.10.10"
    ]
},
var task1 = Task.Run(() => Task.Delay(9000));
Debug.WriteLine(DateTime.Now + $" Task 1 started (Id={task1.Id})");

var task2 = Task.Run(() => Task.Delay(8500));
Debug.WriteLine(DateTime.Now + $" Task 2 started (Id={task2.Id})");

Task firstFinieshed = await Task.WhenAny(task1, task2);
Debug.WriteLine(DateTime.Now + $" 'JDE_Scan' - First action finished (Id={firstFinieshed.Id},Status={firstFinieshed.Status}). Task1 status={task1.Status}, Task2 status={task2.Status}");

await Task.Delay(1000);
Debug.WriteLine(DateTime.Now + $" 'JDE_Scan' - . Task1 status={task1.Status}, Task2 status={task2.Status}");

因此,似乎一切都按预期进行(任务正在同步运行,较短的任务首先完成),但是我希望较长的任务在第一个任务完成时能够运行(而不是WaitingForActivation)。 1秒后,它是RanToCompletion,这是正确的。 我是在做错什么还是.Net行为有些奇怪?我在Xamarin.forms项目中运行它,不知道是否相关信息。

0 个答案:

没有答案