Вызов ConfigureAwait из действия ASP.NET MVC

Я работал над презентацией и подумал, что следующее должно завершиться ошибкой, поскольку ActionResult не возвращается в правильном контексте. Я проверил его с помощью VS и не получил ошибок. Я отладил его и знаю, что он переключает потоки. Так что похоже, что это законный код.

Разве ASP.NET не важно, в каком контексте или потоке он находится, как клиентское приложение? Если да, то какую цель обеспечивает AspNetSynchronizationContext? Я не считаю правильным помещать ConfigureAwait в само действие. Что-то кажется неправильным. Кто-нибудь может объяснить?

    public async Task<ActionResult> AsyncWithBackendTest()
    {
        var result = await BackendCall().ConfigureAwait(false);
        var server = HttpContext.Server;
        HttpContext.Cache["hello"] = "world";
        return Content(result);
    }
16
задан Dan Friedman 4 April 2012 в 03:52
поделиться