TGViewer
Библиотека собеса по C# | вопросы с собеседований Библиотека собеса по C# | вопросы с собеседований @csharp_interview_lib · 5.65K subscribers
Post #871 1.72K
Когда выбирать ValueTask вместо Task, и какие у него ловушки?

Берите ValueTask, если бóльшая часть вызовов завершается синхронно (кэш, короткие I/O) и вы реально снижаете аллокации; иначе Task проще и часто не медленнее.

Не публикуйте ValueTask без нужды в широких API: потребители могут ждать результат несколько раз или кешировать его — для ValueTask это некорректно (повторное ожидание допустимо только после преобразования в Task).

Если нужно ждать более одного раза или хранить результат, конвертируйте один раз в Task через AsTask() и работайте с ним.

Это структура: может содержать либо значение, либо ссылку на источник (IValueTaskSource). Ошибки владения/повторного ожидания ведут к Undefined Behavior.

В композиции (WhenAll/WhenAny, LINQ over Tasks, сторонние библиотеки) часто всё равно произойдёт аллокация или боксинг — выигрыш исчезает.

Исключения/отмена ведут себя как у Task, но повторное ожидание после ошибки у ValueTask недопустимо.

Типичный кейс: горячие пути
ASP.NET Core/парсеры/кэш — измерения показывают пользу; для остального оставляйте Task ради простоты и устойчивости.

🐸Библиотека собеса по С#
More from @csharp_interview_lib
  1. Sep 21, 2026🔍Тестовое собеседование с Senior C# разработчиком уже завтра 22 сентября (уже завтра!) в…
  2. Sep 15, 2026Когда выбирать struct/record struct вместо class? Для маленьких, неизменяемых и часто копи…
  3. Sep 15, 2026😭 Как не потратить недельный лимит AI-кодинга за три дня? Разберём на вебинаре, как трати…
  4. Sep 7, 2026⚡️⚡️Актуальные темы .NET на DotNext 2026 В .NET одновременно происходит много интересного:…
  5. Aug 4, 2026Долгоживущий .NET-сервис постепенно “распухает” по памяти без явных LOH-пиков. В дампе вид…
  6. Aug 4, 2026👅 Самое сложное — выбрать не курс, а направление Сегодня хочется разобраться в AI-агентах…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →