ta muallif kitobidan iqtiboslar  Конкурентность в C#. Асинхронное, параллельное и многопоточное программирование

Максим
Максимiqtibos olmoqda1 oy oldin
ValueTask<T> используется как возвращаемый тип в ситуациях, в которых обычно может быть возвращен синхронный результат, а асинхронное поведение встречается реже. В общем случае в коде приложения следует использовать в качестве возвращаемого типа Task<T>, а не ValueTask<T>. Рассматривать использование ValueTask<T> в качестве возвращаемого типа следует только после профилирования, которое показывает, что это приведет к повышению быстродействия. Впрочем, возможны ситуации, в которых требуется реализовать метод, возвращающий ValueTask<T>. Одна из таких ситуаций встречается при использовании интерфейса IAsyncDisposable, метод DisposeAsync которого возвращает ValueTask. За более подробным пояснением асинхронного освобождения ресурсов обращайтесь к рецепту 11.6.
Fikr bildirish
Хэлен
Хэленiqtibos olmoqda4 oy oldin
очередь может использоваться для представления последовательности выполняемых операций, а стек — для представления последовательности операций отмены
Fikr bildirish
Хэлен
Хэленiqtibos olmoqda4 oy oldin
Многие современные фреймворки модульного тестирования — включая MSTest, NUnit и xUnit — поддерживают методы модульного тестирования asyncTask
Fikr bildirish
Хэлен
Хэленiqtibos olmoqda4 oy oldin
Если «сигнал» представляет собой сообщение, отправляющее некоторые данные между потоками, рассмотрите возможность использования очереди «производитель/потребитель».
Fikr bildirish
Хэлен
Хэленiqtibos olmoqda4 oy oldin
Самый распространенный и универсальный межпотоковый сигнал — событие с ручным сбросом ManualResetEventSlim
Fikr bildirish
Хэлен
Хэленiqtibos olmoqda4 oy oldin
Команда lock несовместима с await
Fikr bildirish
Хэлен
Хэленiqtibos olmoqda4 oy oldin
блоки­рующие вызовы при удержании блокировок. В идеале их быть вообще не должно
Fikr bildirish
Хэлен
Хэленiqtibos olmoqda4 oy oldin
Объект, используемый в команде lock, должен быть приватным полем, которое никогда не должно быть доступным для любых методов за пределами класса
Fikr bildirish
Хэлен
Хэленiqtibos olmoqda4 oy oldin
Никогда не выполняйте произвольный код при удержании блокировки
Fikr bildirish
Хэлен
Хэленiqtibos olmoqda4 oy oldin
Ограничьте видимость блокировки. • Документируйте, что именно защищает блокировка. • Сократите до минимума объем кода, защищенного блокировкой
Fikr bildirish