Что такое ValueTask<T> и когда он того стоит?
ValueTask и ValueTask<T> -- это структуры, которые позволяют асинхронному методу вернуть результат без выделения Task в куче, когда он завершается синхронно. Выигрыш -- одно выделение памяти меньше на горячих путях, которые обычно завершаются без ожидания. Цена -- строгий контракт ожидания ровно один раз. Вот что этот тип представляет собой на самом деле, как он работает и тот узкий набор случаев, где он оправдывает себя.