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

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

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