Асинхронное программирование на C# (Блок 7 часть 2)

Поділитися
Вставка
  • Опубліковано 25 лис 2024

КОМЕНТАРІ • 8

  • @firemanhood1526
    @firemanhood1526 7 місяців тому

    Просто вызов асинхронных версий методов (ReadAsync) недостаточно, чтобы работа была асинхронной? Нужно обязательно в конструктор передавать параметр? Это актуально для net 8.0?

    • @RadmirT
      @RadmirT  7 місяців тому

      Если вы не укажите флаг FileOption.Asynchronous, то ReadAsync будет работать как обычная CPU-задача нагружая процессор, т.е. использования именно задач ввода-вывода не будет.

    • @firemanhood1526
      @firemanhood1526 7 місяців тому

      @@RadmirT Получается лучше всегда ходить при чтение/запись на диск асинхронно, кажется такое поведение наоборот должно быть по умолчанию. А для специфических кейсов уже ставить опцию синхронно. Думаю большенство разработчиков не знают этой фишки)

    • @firemanhood1526
      @firemanhood1526 7 місяців тому

      @@RadmirT или тут есть какие-то подводные камни?

    • @RadmirT
      @RadmirT  7 місяців тому

      Да, в 99.99% случаев если вы хотите читать файл асинхронно, надо ставить эту опцию. Тут проблема в том, что при создании FileStream никто кроме программиста не знает, как будут читаться данные, синхронно или асинхронно. А читать в синхронном режиме с этим флагом не самая лучшая идея.

  • @firemanhood1526
    @firemanhood1526 7 місяців тому

    Это всех ОС касается? Или только виндовс так работает?

    • @RadmirT
      @RadmirT  7 місяців тому

      Да, во всех ОС общего пользования (Windows, Linux, MacOS). Возможно только какие-нибудь специализированные ОС могу работать по другому.

    • @firemanhood1526
      @firemanhood1526 7 місяців тому

      @@RadmirT спасибо