Comments 2
Читать или писать в сокет можно только одним потоком (только один или читает или пишет).
а вот и нет, для сокетов эти операции независимы друг от друга, другое дело что протокол который реализуется на сокетах скорей всего синхронный.
У меня вызывает сомнение целесообразность демонстрации в статье "своего велосипеда" — самопальной (и ограниченной) реализации IValueTaskSource, сделанной явно на основе статей года, эдак, 2019 (потому-то некоторые куски этой самопальной реализации вызывают у меня чувство deja vue) — при том, что эта реализация потом даже не используется. Ведь мы живем не во времена, когда последней версией .NET Core была 2.x и ManualResetValueTaskSourceCore нам ещё не выкатили и требовалось делать что-то самому.
IMHO в статье было бы достаточно разьяснить, что должны делать методы IValueTaskSource, может быть — дать ссылки на те старые статьи с примерами самодельной реализации для особо интересующихся, и переходить к реально используемой реализации на ManualResetValueTaskSourceCore.
IValueTaskSource и почему нельзя пере`await`ить