首页 > 解决方案 > VS Inline 临时变量建议会破坏异步函数

问题描述

有人可以解释以下行为吗?

从异步事件处理程序调用时按预期工作的正常异步函数:

private async Task SomethingAsync()
        {
            Task[] tasks = new Task[2];
            tasks[0] = this.SomeTaskOne();
            tasks[1] = this.SomeTaskTwo();
            await Task.WhenAny(tasks);
        } 

在中断的VS内联建议(快速操作)之后:

    (new Task[2])[0] = this.SomeTaskOne();
    (new Task[2])[1] = this.SomeTaskTwo();
    await Task.WhenAny(new Task[2]);

当我运行它时,我得到:

tasks 参数包含一个空值。参数名称:任务'

我不确定内联是如何工作的,但结果不应该是一样的吗?据我了解,它只是隐藏了局部变量。

标签: c#asynchronousvisual-studio-2017taskinline

解决方案


推荐阅读