Ответы пользователя по тегу Асинхронное программирование
  • Как правильно возвращать объект из async метода в .NET?

    @kttotto
    пофиг на чем писать
    1. У Вас корректные примеры, никаких await Task.FromResult не нужно.
    2.
    при вызове метода GetRequestResult придётся писать await

    Придется. async/await заразен, он вынуждено подымается вверх по вызовам. С с .Result Вы убьете асинхронность, сомневаюсь, что в Ваше случае есть необходимость в его применении.

    Бест практика одна - использовать его как будто это обычный метод, в этом и красота его применения. await перед вызовом говорит только, что вызывающий поток освободится. Ну и нужно помнить о контексте синхронизации и понимать когда можно сделать .ConfigureAwait(false).
    Ответ написан
    6 комментариев
  • Практики регулирования доступа к кэшированным (редко изменяемым) данным в условиях многопоточности?

    @kttotto
    пофиг на чем писать
    Если данные в кеше недействительны, то кэш сбрасывается и перечитывается по новой. Чтобы весь глобально не сбрасывать, его делят на слои и сбрасывают необходимый слой. Чтобы отдельно объект в кэше обновлять, такого не встречал.

    Если слои кэша в Concurrent списках, то без разницы, кто его в этот момент читает. Мы для кэша используем Lazy.

    Я так понимаю, что данные хоть и будут изменяться, то не часто, иначе нет смысла в кэше. В нашем случае, когда приходят новые данные или мы их обновляем, мы руками вызываем _cache.Layer.Reset()
    Ответ написан
    1 комментарий
  • Как правильно асинхронно загрузить файл?

    @kttotto
    пофиг на чем писать
    Это асинхронная загрузка. Ajax по умолчанию делает асинхронны запросы, если сами не сделаете async: false. Проверить асинхронность легко, страница не должна блокироваться во время запроса.
    Ответ написан
    Комментировать