Может ли кто-нибудь объяснить следующее поведение?
Обычная асинхронная функция, которая работает, как и ожидалось, при вызове из обработчика асинхронных событий:
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 '
Я не уверен, как работает встраивание, но разве результат не должен быть таким же?Насколько я понимаю, он просто скрывает локальную переменную.