Является ли возврат ViewAsync в MVC преимуществом и почему он не существует?

Надеюсь, это все еще по теме. В этом сообщении я увидел, как создать await ViewAsync(): Возвращение представления с помощью async keyword

Итак, мое соображение было: хорошо, я хочу, чтобы мое приложение использовало многопоточность, давайте сделаем BaseController, что содержит эти методы для ViewAsync:

только часть его:

public class BaseController : Controller
{
    [NonAction]
    public virtual async Task<ViewResult> ViewAsync()
    {
        return await Task.Run(() => this.View(null));
    }

    [NonAction]
    public virtual async Task<ViewResult> ViewAsync(string viewName)
    {
        return await Task.Run(() => this.View(viewName, this.ViewData.Model));
    }

    // the other implementations....
}

теперь я всегда мог бы называть это в классе наследования:

[HttpGet]
public async Task<IActionResult> DoSomething()
{
    // maybe we need to do something here, maybe not

    return await ViewAsync(new DoSomethingObject());
}

imho, мое преимущество / цель - производительность, так как я всегда могу использовать многопоточность.

Правильно ли я со своим соображением? В сообщении комментарий к ответу начинался с I wouldn't do this. Но не так много голосов / комментариев / ответов. Где риски или недостатки такой реализации? И, может быть, почему Microsoft.AspNetCore.Mvc.Controller не пришел с методом ViewAsync?

0
задан 13 August 2018 в 14:23

0 ответов

Другие вопросы по тегам:

Похожие вопросы: