powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Вопрос по архитектуре
6 сообщений из 6, страница 1 из 1
Вопрос по архитектуре
    #38655622
IRONMAN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет.

http://visualstudiomagazine.com/articles/2013/07/23/async-actions-in-aspnet-mvc-4.aspx

Вопрос: стоит ли вообще заморачиваться с добавлением в репозиторий асинхронных методов или забить на это и
использовать асинхронность на более высоком уровне "сервисов", ведь async - await можно использовать где угодно -
контроллеру на это пофиг...

Спасибо.
...
Рейтинг: 0 / 0
Вопрос по архитектуре
    #38655648
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IRONMANконтроллеру на это пофиг...Не пофиг. Код или весь синхронный, или весь асинхронный. Если хочется экономить на ожидании I/O потоками из пула, всё должно быть асинхронно.
...
Рейтинг: 0 / 0
Вопрос по архитектуре
    #38655678
IRONMAN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КIRONMANконтроллеру на это пофиг...Не пофиг. Код или весь синхронный, или весь асинхронный.

Вот есть код класса некоторого контроллера:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
public class HomeController : AsyncController
    {

        public async Task<ActionResult> Index()
       {
          var model = new SomeModel();
          var task1 = GetPagesAsync(1);
          var task2 = GetPagesAsync(2);
          var task1 = GetPagesAsync(3);

          model.Prop1 = await task1;
          model.Prop2 = await task2;
          model.Prop3 = await task3;

          return View(model);
       }

       //некая имитация сервиса
       [NonAction]
       Task<ModelA> GetPagesAsync(int index)
      {
          return Task.Run(()=>
          {
              //обращение к неасинхронному репозиторию
              return result;
          }
         
      }
    }



В этом смысле нужна ли асинхронность в репозитории и что это даст?
...
Рейтинг: 0 / 0
Вопрос по архитектуре
    #38655721
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IRONMAN
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
       [NonAction]
       Task<ModelA> GetPagesAsync(int index)
      {
          return Task.Run(()=>
          {
              //обращение к неасинхронному репозиторию
              return result;
          }
         
      }
    }

При такой реализации теряется весь смысл. Читай про порты завершения . Здесь асинхронность, это способ оптимизации, при котором экономятся потоки с счёт того, что нет ожидания ввода/вывода.
...
Рейтинг: 0 / 0
Вопрос по архитектуре
    #38655803
IRONMAN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КПри такой реализации теряется весь смысл.

Допустим смысл один - уменьшить время выполнения кода метода Task<ActionResult> Index(). (у меня в тесте оно уменьшилось в 4 раза по сравнению с синхронным контроллером). I/O аспекты в репозитории меня не волнуют (запросы быстрые). В этом случае
асинхронность в репо реализовывать не надо и можно юзать примерно как в моем коде?
...
Рейтинг: 0 / 0
Вопрос по архитектуре
    #38656586
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IRONMANАлексей КПри такой реализации теряется весь смысл.

Допустим смысл один - уменьшить время выполнения кода метода Task<ActionResult> Index(). (у меня в тесте оно уменьшилось в 4 раза по сравнению с синхронным контроллером). I/O аспекты в репозитории меня не волнуют (запросы быстрые). В этом случае
асинхронность в репо реализовывать не надо и можно юзать примерно как в моем коде?В этом случае никакие асинхронности не нужны, ни в репозитарии, ни в контроллере.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Вопрос по архитектуре
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]