Популярное

Музыка Кино и Анимация Автомобили Животные Спорт Путешествия Игры Юмор

Интересные видео

2025 Сериалы Трейлеры Новости Как сделать Видеоуроки Diy своими руками

Топ запросов

смотреть а4 schoolboy runaway турецкий сериал смотреть мультфильмы эдисон
dTub
Скачать

C# для начинающих #23: Лучшие практики асинхронного программирования — ValueTask, CancellationTok...

Автор: Benjamin Day

Загружено: 2026-01-14

Просмотров: 21

Описание:

Вы знакомы с async и await. Теперь давайте поговорим о том, что отличает асинхронный код для начинающих от асинхронного кода, готового к использованию в продакшене. ValueTask, CancellationToken, ConfigureAwait и ошибки, которые допускают даже опытные разработчики.

Что вы узнаете:
• Почему выделение памяти для Task важно в цепочках вызовов
• ValueTask — структура против класса, синхронные пути с нулевым выделением памяти
• Когда использовать Task (по умолчанию) и ValueTask (в цепочках вызовов)
• Правила ValueTask, которым необходимо следовать
• CancellationToken — принятие, передача, проверка
• HttpContext.RequestAborted в ASP.NET Core
• Правильная обработка OperationCanceledException
• ConfigureAwait(false) — когда и почему
• Рекомендации по использованию библиотек и кода приложения
• Выявлен антипаттерн «запустил и забыл»
• Почему отбрасывание Task с помощью _ опасно
• Асинхронность вместо синхронизации — не имитируйте её
• Ссылки на таблицы: использовать/не использовать

Ключевые моменты:
• Task — это значение по умолчанию — используйте его, если у вас нет пути синхронизации
• ValueTask можно ожидать только один раз — не храните и не используйте повторно
• Передавайте CancellationToken через всю цепочку вызовов
• ConfigureAwait(false) предназначен для авторов библиотек, а не для кода приложения.
• Запуск без фоновой системы заданий = потеря исключений.
• Не оборачивайте синхронный код в Task.Run, чтобы он выглядел асинхронным.
• Пусть вызывающая сторона сама решает, когда использовать Task.Run.

Распространенные ошибки, которых мы будем избегать:
• Использование ValueTask повсюду (у него есть правила!)
• Игнорирование запросов на отмену.
• Использование ConfigureAwait(false) в приложениях ASP.NET Core.
• Вызов .Result или .Wait() для задач.
• Запуск без надлежащей инфраструктуры.

Предыдущее видео: Основы Async/Await
Следующее видео: Параллельное программирование
► Полный плейлист:    • C# and .NET from Scratch - Complete Beginn...  
► Репозиторий кода: https://github.com/benday-inc/csharp-...

Хотите улучшить свой асинхронный код? Нажмите кнопку «Нравится»!
Подпишитесь и включите уведомления — параллельное программирование будет следующим!
Какая самая серьёзная асинхронная ошибка, которую вам приходилось отлаживать? Поделитесь в комментариях!

#CSharp #AsyncAwait #ValueTask #CancellationToken #DotNet #Программирование #ЛучшиеПрактики #УчебникПоКодированию

0:00 Лучшие практики асинхронного программирования
0:16 Что мы рассмотрим
0:34 Проблема с выделением памяти для задач
0:50 Появление ValueTask
1:14 Task против ValueTask: когда использовать тот или иной подход
2:01 Правила ValueTask
2:31 CancellationToken: зачем он нужен
2:46 Использование CancellationToken
3:21 Обработка отмены
3:43 ConfigureAwait: друг автора библиотеки
4:15 ConfigureAwait на практике
4:57 Распространенная ошибка: выполнить и забыть
5:21 Выполнить и забыть: чего не следует делать
5:42 Распространенная ошибка: асинхронность вместо синхронизации
6:16 Краткое изложение лучших практик
6:45 Ключевые выводы
7:20 Спасибо за просмотр!

C# для начинающих #23: Лучшие практики асинхронного программирования — ValueTask, CancellationTok...

Поделиться в:

Доступные форматы для скачивания:

Скачать видео mp4

  • Информация по загрузке:

Скачать аудио mp3

Похожие видео

Как выбрать ИБП для дома? Что такое

Как выбрать ИБП для дома? Что такое "чистый синус" ? И забудьте про ампер-часы!

Разработка на C# для начинающих #20: Потокобезопасные коллекции — ConcurrentDictionary, BlockingC...

Разработка на C# для начинающих #20: Потокобезопасные коллекции — ConcurrentDictionary, BlockingC...

Разработка на C# для начинающих #22: Async/Await — Прекратите использовать блокирующие потоки и н...

Разработка на C# для начинающих #22: Async/Await — Прекратите использовать блокирующие потоки и н...

Разработка на C# для начинающих #19: Введение в многопоточность — потоки, состояния гонки и почем...

Разработка на C# для начинающих #19: Введение в многопоточность — потоки, состояния гонки и почем...

ROS2 Tutorial – Episode 1: TurtleSim #jazzy #ros2

ROS2 Tutorial – Episode 1: TurtleSim #jazzy #ros2

ДАМПЫ В JAVA на практике, разбираем проблемы

ДАМПЫ В JAVA на практике, разбираем проблемы

C# Dev #24: Параллельное программирование — используйте все ядра вашего процессора с помощью Para...

C# Dev #24: Параллельное программирование — используйте все ядра вашего процессора с помощью Para...

Сравнение CockroachDB и Postgres

Сравнение CockroachDB и Postgres

Global Error Handling in .NET Just Got WAY Better

Global Error Handling in .NET Just Got WAY Better

SUNO.AI Как стереть цифровой след

SUNO.AI Как стереть цифровой след

Мой опыт перехода с MacOS на Linux | Полный гайд

Мой опыт перехода с MacOS на Linux | Полный гайд

Чем ОПАСЕН МАХ? Разбор приложения специалистом по кибер безопасности

Чем ОПАСЕН МАХ? Разбор приложения специалистом по кибер безопасности

РЕАЛЬНОЕ собеседование на Data Scientist. Алгоритмы + Python

РЕАЛЬНОЕ собеседование на Data Scientist. Алгоритмы + Python

Почему эллипс это сложно и не существует формулы периметра эллипса

Почему эллипс это сложно и не существует формулы периметра эллипса

Бизнес-логика в dataclass, pydantic, attrs-классах или в обычных классах? ООП в Python

Бизнес-логика в dataclass, pydantic, attrs-классах или в обычных классах? ООП в Python

Typst: Современная замена Word и LaTeX, которую ждали 40 лет

Typst: Современная замена Word и LaTeX, которую ждали 40 лет

Zed IDE: Полный обзор спустя год | Личный опыт разработки на ней

Zed IDE: Полный обзор спустя год | Личный опыт разработки на ней

Minimal APIs are FINALLY production-ready

Minimal APIs are FINALLY production-ready

Сисадмины больше не нужны? Gemini настраивает Linux сервер и устанавливает cтек N8N. ЭТО ЗАКОННО?

Сисадмины больше не нужны? Gemini настраивает Linux сервер и устанавливает cтек N8N. ЭТО ЗАКОННО?

Для Чего РЕАЛЬНО Нужен был ГОРБ Boeing 747?

Для Чего РЕАЛЬНО Нужен был ГОРБ Boeing 747?

© 2025 dtub. Все права защищены.



  • Контакты
  • О нас
  • Политика конфиденциальности



Контакты для правообладателей: infodtube@gmail.com