Конкурентность в C#. Асинхронное, параллельное и многопоточное программирование
Қосымшада ыңғайлырақҚосымшаны жүктеуге арналған QRRuStore · Samsung Galaxy Store
Huawei AppGallery · Xiaomi GetApps

автордың кітабынан сөз тіркестері  Конкурентность в C#. Асинхронное, параллельное и многопоточное программирование

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