В чем разница между public, static и void?
Публично объявленные переменные или методы доступны в любом месте приложения. Статически объявленные переменные или методы доступны глобально без создания экземпляра класса. Статический член по умолчанию не доступен глобально, это зависит от используемого типа измененного доступа. Компилятор сохраняет адрес метода в качестве точки входа и использует эту информацию, чтобы начать выполнение до создания каких-либо объектов. А Void — это модификатор типа, который указывает, что метод или переменная не возвращает никакого значения.
Библиотека собеса по С#
Библиотека собеса по С#
🥱6
В .NET Core приложении под высокой нагрузкой вы замечаете, что ответы API начинают задерживаться. Профилирование показывает блокировки потоков в ThreadPool. Как будете искать и устранять проблему?
Проверю, нет ли синхронных вызовов внутри async-методов (.Result, .Wait()), проанализирую contention на lock и тяжёлые операции в основном потоке. Для оптимизации — вынесу CPU-bound задачи в Task.Run или ProcessPool, ограничу параллелизм через SemaphoreSlim, а для I/O оставлю async/await без блокировок.
Библиотека собеса по С#
Библиотека собеса по С#
😁2
Каковы различные типы операторов принятия решений в C#?
Существуют различные типы операторов принятия решений, включенные в C#. Типами операторов могут быть оператор if, оператор if-else, оператор switch и оператор if-else-if.
Библиотека собеса по С#
Библиотека собеса по С#
🥱9
Объясните модификаторы доступа в C#.
Модификаторы доступа — это ключевые слова, которые определяют уровень доступности члена типа или самого типа. Например, открытый класс доступен всему миру, тогда как внутренний класс может быть доступен только сборке.
Библиотека собеса по С#
Библиотека собеса по С#
Как реализовать шаблон проектирования Singleton в C#?
Мы можем реализовать шаблон проектирования синглтона в C#, используя:
✍🏻 Непотокобезопасный синглтон;
✍🏻 Потокобезопасный синглтон;
✍🏻 Потокобезопасный синглтон с двойной проверкой блокировки;
✍🏻Потокобезопасный без блокировки;
✍🏻 Используя тип Lazy .NET 4.
Библиотека собеса по С#
Мы можем реализовать шаблон проектирования синглтона в C#, используя:
✍🏻 Непотокобезопасный синглтон;
✍🏻 Потокобезопасный синглтон;
✍🏻 Потокобезопасный синглтон с двойной проверкой блокировки;
✍🏻Потокобезопасный без блокировки;
✍🏻 Используя тип Lazy .NET 4.
Библиотека собеса по С#
This media is not supported in your browser
VIEW IN TELEGRAM
Включайте кружок там личное приглашение от спикера. 👆
Уже завтра в прямом эфире, разбираем архитектуру контекста в мультиагентных системах.
🤫 Секретный лут:
👉 Регистрируйтесь на трансляцию
Please open Telegram to view this post
VIEW IN TELEGRAM
Почему алгоритм Дейкстры не работает с отрицательными рёбрами и что использовать вместо него?
Короткий ответ: жадный выбор «замораживает» вершины, предполагая, что найденные расстояния минимальны; с отрицательными рёбрами это нарушается. Используйте Беллмана–Форда (O(VE)) для отрицательных рёбер и детекции отрицательных циклов или Джонсона для всех пар на разреженных графах. Кстати, у нас сейчас действует 40% скидка на курс Алгоритмы и структуры данных .
🤖 Осталось 4 места на курс по ИИ-агентам. Набор закрывается 30 апреля.
🔗 Успеть на обучение
Библиотека собеса по С#
🔗
Библиотека собеса по С#
Что такое делегаты в C#?
Это эквивалент указателя функции C в C#, основное отличие которого состоит в том, что делегаты C# являются типобезопасными. Это ссылочный тип, который можно использовать для обработки других функций, таких как данные. Мы можем передавать функции в качестве параметров и обрабатывать любые связанные функции обратного вызова и эвенты.
Библиотека собеса по С#
Библиотека собеса по С#
Осталось всего 4 места на курс по ИИ-агентам. 30 апреля закрываем набор окончательно.
В ГС честно рассказали:
— Кому курс не подойдет;
— Какой хардкор в программе (LangGraph, AutoGen, CrewAI);
— Как мы даем токены, чтобы вы не тратили свои деньги.
🏃♀️ Записаться, пока есть места
В ГС честно рассказали:
— Кому курс не подойдет;
— Какой хардкор в программе (LangGraph, AutoGen, CrewAI);
— Как мы даем токены, чтобы вы не тратили свои деньги.
Please open Telegram to view this post
VIEW IN TELEGRAM
Можете ли вы использовать «this» в статическом методе C#?
Нет, потому что «this» возвращает ссылку на текущий экземпляр того же класса, а статические методы не принадлежат какому-либо конкретному экземпляру, поскольку их можно вызывать только по имени класса.
Единственным исключением являются методы расширения, поскольку мы можем использовать «this» с первым параметром метода.
🤖 Осталось 4 места на курс по ИИ-агентам. Набор закрывается 30 апреля.
🔗 Успеть на обучение
Библиотека собеса по С#
Единственным исключением являются методы расширения, поскольку мы можем использовать «this» с первым параметром метода.
🔗
Библиотека собеса по С#
👍5
Когда вы используете lock, поток блокируется до тех пор, пока не завершится выполнение кода внутри блока. Операции с await требуют освобождения потока, чтобы он мог продолжить выполнение других задач, что несовместимо с блокировкой потока через lock.
Если вы хотите использовать асинхронные операции с ожиданием, следует использовать другие механизмы синхронизации, такие как SemaphoreSlim, которые поддерживают асинхронное ожидание.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
В высоконагруженном .NET Core сервисе вы замечаете рост задержек при обработке запросов. Профилирование показывает большое количество асинхронных задач в состоянии WaitingForActivation. Что это может означать и как решать проблему?
Это часто указывает на блокирующий код внутри async-методов (например, вызовы .Result или .Wait()), либо на долгие операции без await. Нужно убрать синхронные блокировки, использовать полноценный async/await, добавить таймауты, проверить сторонние библиотеки на наличие блокирующих вызовов и при необходимости вынести тяжёлые операции в отдельные потоки/процессы.
Библиотека собеса по С#
Библиотека собеса по С#
👍4❤2
В .NET Core сервисе под высокой нагрузкой вы замечаете рост задержек и частые блокировки потоков при работе с БД. Как будете искать и устранять проблему?
Проверить, не используются ли синхронные вызовы (.Result, .Wait()), профилировать async-цепочки. Убедиться, что пул подключений к БД настроен корректно, и что долгие операции не блокируют ThreadPool. Решение — переписать на полноценный async/await, оптимизировать запросы, при необходимости ограничить параллелизм через SemaphoreSlim или использовать кэширование.
Библиотека собеса по С#
Библиотека собеса по С#
🔥2😢1
В ASP.NET Core под нагрузкой растёт хвост задержек: CPU низкий, но наблюдаются пики длины очереди ThreadPool и таймауты HttpClient. Где искать корень проблемы и как её устранить?
Это типичный признак thread pool starvation из-за sync-over-async: блокировки .Result/.Wait(), синхронные I/O или тяжёлая синхронная работа в request-потоках. Диагностика — EventCounters/PerfView (ThreadPool QueueLength, Contentions), анализ async-стека. Решение — сделать путь запроса полностью асинхронным (DB/HTTP/FS), убрать блокировки, вынести CPU-bound в Task.Run/фоновые очереди, корректно использовать HttpClientFactory, и как временную меру — поднять ThreadPool.SetMinThreads.
Библиотека собеса по С#
Библиотека собеса по С#
Как используется property?
Свойство — это обёртка вокруг поля. Свойство используется как для присвоения, так и для чтения значения из поля с помощью методов set и get. Свойство можно создать для различных полей, таких как закрытые, открытые, защищённые и внутренние.
Библиотека собеса по С#
Библиотека собеса по С#
👍2🥱2
В ASP.NET Core у вас async-метод защищает кэш обычным lock и делает await внутри критической секции. Под нагрузкой — залипания и просадка RPS. В чём проблема и как починить?
await внутри lock держит монитор и блокирует потоки → contention/starvation и возможные deadlock’и. Решение: не делать await под lock; использовать ConcurrentDictionary (например, GetOrAdd с Lazy<Task<T>>) или асинхронную синхронизацию (SemaphoreSlim/AsyncLock, часто per-key), выносить await за пределы критической секции.
Библиотека собеса по С#
Библиотека собеса по С#
🦾 Почему ваши AI-продукты на базе LLM ломаются (и как это чинить)?
Выкатили ИИ-фичу в прод, а она галлюцинирует, падает или выдает мусор? Приглашаем на открытый вебинар, где разберем реальную боль внедрения LLM-агентов и научимся делать так, чтобы «всё работало».
🗓 Когда: 14 мая в 19:00 МСК
⏱️ Формат: 60 минут мяса + 30 минут ответов на ваши вопросы
🧑🏻💻 Кто вещает: Эмиль Сатаев — Backend Platform Developer (8+ лет в разработке). Человек, который своими руками внедряет LLM и агентные системы в реальные коммерческие сервисы.
🎁 Главный бонус для онлайна:
Только участникам прямого эфира подарим уникальный промокод на скидку 10.000 ₽ на большой курс AgentOps.
👉 Занять место на вебинаре
Выкатили ИИ-фичу в прод, а она галлюцинирует, падает или выдает мусор? Приглашаем на открытый вебинар, где разберем реальную боль внедрения LLM-агентов и научимся делать так, чтобы «всё работало».
🗓 Когда: 14 мая в 19:00 МСК
⏱️ Формат: 60 минут мяса + 30 минут ответов на ваши вопросы
🧑🏻💻 Кто вещает: Эмиль Сатаев — Backend Platform Developer (8+ лет в разработке). Человек, который своими руками внедряет LLM и агентные системы в реальные коммерческие сервисы.
🎁 Главный бонус для онлайна:
Только участникам прямого эфира подарим уникальный промокод на скидку 10.000 ₽ на большой курс AgentOps.
👉 Занять место на вебинаре
Что такое AJAX в ASP.NET?
Полная форма ASP.NET AJAX — это асинхронный JavaScript и XML. ASP.NET AJAX, также известный как AJAX, представляет собой набор дополнений ASP.NET . Он использует асинхронную передачу данных между браузером и веб-сервером, чтобы веб-страницы могли запрашивать небольшие фрагменты информации с сервера вместо целых страниц. Этот метод делает интернет-приложения меньше, быстрее и удобнее для пользователя. Он создан корпорацией Microsoft для выполнения функций AJAX в веб-приложениях. ASP.NET AJAX работает с библиотекой AJAX, которая использует объектно-ориентированное программирование (ООП) для более быстрых многофункциональных веб-приложений.
Библиотека собеса по С#
Библиотека собеса по С#
❤1
Как запускать один периодический джоб на весь кластер ASP.NET Core без внешнего планировщика?
Оберните BackgroundService в распределённый lock (Redis SET NX PX, Postgres advisory lock и т.п.) с heartbeats/TTL и авто-продлением; выполняйте работу только у лидера. Делайте задачи идемпотентными, держите дедлайны/отмену, при потере lock — немедленно завершайте цикл. Сохраняйте «курсор прогресса» в БД.
Библиотека собеса по С#
Библиотека собеса по С#
👍1