Когда выбирать System.IO.Pipelines вместо Stream, и что важно для корректного парсинга?
Для высокопроизводительных протоколов/сокетов: PipeReader выдаёт ReadOnlySequence<byte> без копий, парсите инкрементально, учитывайте частичные сообщения, управляйте backpressure через AdvanceTo(consumed, examined), не требуйте непрерывной памяти, корректно завершайте Complete() и прокидывайте CancellationToken.
Библиотека собеса по С#
Библиотека собеса по С#
Основы обобщений (Generics) в C#: классы, интерфейсы, методы и делегаты
Generics — это фундамент гибкого и переиспользуемого кода в C#. На открытом вебинаре курса OTUS C# Developer. Professional Павел Нилов объяснит, как работают обобщения, зачем они нужны и как с их помощью писать код, который не боится масштабирования.
📌 18 ноября, 20:00
Основы обобщений (Generics) в C#
— классы, интерфейсы, методы и делегаты
— ковариантность, контравариантность и ограничения
— эффективное использование List и Dictionary
— примеры и разбор типичных ошибок
Вебинар бесплатный и подойдёт начинающим .NET-разработчикам, студентам и джунам, готовящимся к собеседованиям, а также тем, кто хочет систематизировать знания по Generics.
👉 Регистрируйтесь: https://clc.to/LOIXVw
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Generics — это фундамент гибкого и переиспользуемого кода в C#. На открытом вебинаре курса OTUS C# Developer. Professional Павел Нилов объяснит, как работают обобщения, зачем они нужны и как с их помощью писать код, который не боится масштабирования.
📌 18 ноября, 20:00
Основы обобщений (Generics) в C#
— классы, интерфейсы, методы и делегаты
— ковариантность, контравариантность и ограничения
— эффективное использование List и Dictionary
— примеры и разбор типичных ошибок
Вебинар бесплатный и подойдёт начинающим .NET-разработчикам, студентам и джунам, готовящимся к собеседованиям, а также тем, кто хочет систематизировать знания по Generics.
👉 Регистрируйтесь: https://clc.to/LOIXVw
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Как диагностировать в проде thread pool starvation и «sync-over-async» без перезапуска?
Снимайте EventPipe-метрики (dotnet-counters): ThreadPool Queue Length/Completed/Active, aspnetcore-критерии; берите короткий dotnet-trace CPU-сэмплинг, при необходимости дамп. Признаки — длинная очередь, мало воркеров, блокирующие стеки. Лечение: end-to-end async, убрать .Result/.Wait(), вынести долгие блокировки, при пиках поднять MinThread, но не маскировать корень.
Библиотека собеса по С#
Библиотека собеса по С#