Что бросит await Task.WhenAll(tasks) при ошибках?
👾 — Всегда AggregateException, даже при одной ошибке
⚡ — При одной ошибке — саму эту ошибку; при нескольких — AggregateException (все доступны в t.Exception.InnerExceptions)
👍 — Никогда не бросает, просто возвращает результаты успешных задач
🥰 — Отменяет остальные задачи при первом падении
🔹 Курс «Программирование на языке Python»
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib
Библиотека задач по C#
👾 — Всегда AggregateException, даже при одной ошибке
⚡ — При одной ошибке — саму эту ошибку; при нескольких — AggregateException (все доступны в t.Exception.InnerExceptions)
👍 — Никогда не бросает, просто возвращает результаты успешных задач
🥰 — Отменяет остальные задачи при первом падении
🔹 Курс «Программирование на языке Python»
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib
Библиотека задач по C#
👾19👍1
Можно ли запретить наследование от своего собственного класса?
Для того, чтобы запретить наследоваться от класса необходимо объявить его с модификатором sealed.
Для того, чтобы запретить наследоваться от класса необходимо объявить его с модификатором sealed.
👍9🥱2
В .NET Core сервисе вы работаете с большим количеством строковых данных. Профилирование показывает избыточные аллокации при извлечении подстрок. Какой подход наиболее эффективен для оптимизации?
👾 — Использовать string.Substring() как обычно — это самый быстрый вариант
👍 — Применить StringBuilder для хранения всех подстрок
🥰 — Использовать Span<char> или ReadOnlyMemory<char>, чтобы работать с подстроками без копирования
⚡️ — Сохранять все строки в static List<string>, чтобы их не собирал GC
🔹 Курс «Программирование на языке Python»
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib
Библиотека задач по C#
👾 — Использовать string.Substring() как обычно — это самый быстрый вариант
👍 — Применить StringBuilder для хранения всех подстрок
🥰 — Использовать Span<char> или ReadOnlyMemory<char>, чтобы работать с подстроками без копирования
⚡️ — Сохранять все строки в static List<string>, чтобы их не собирал GC
🔹 Курс «Программирование на языке Python»
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib
Библиотека задач по C#
🥰15👍8❤1
Какой из следующих методов используется для реализации наследования в C#?
👾 — class Derived : Base
👍 — class Derived inherits Base
🥰 — class Derived extends Base
⚡️ — Ничего из вышеперечисленного
🔹 Курс «Программирование на языке Python»
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib
Библиотека задач по C#
👾 — class Derived : Base
👍 — class Derived inherits Base
🥰 — class Derived extends Base
⚡️ — Ничего из вышеперечисленного
🔹 Курс «Программирование на языке Python»
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib
Библиотека задач по C#
👾32⚡3🥱2
Чем IQueryable<T> отличается от IEnumerable<T>?
👾 — IQueryable всегда быстрее и работает только в памяти
👍 — IQueryable строит дерево выражений для провайдера и может выполняться удалённо (БД); IEnumerable перечисляет в памяти
🥰 — Они идентичны; различий нет
⚡️ — IEnumerable поддерживает async, а IQueryable — нет
🔹 Курс «Программирование на языке Python»
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib
Библиотека задач по C#
👾 — IQueryable всегда быстрее и работает только в памяти
👍 — IQueryable строит дерево выражений для провайдера и может выполняться удалённо (БД); IEnumerable перечисляет в памяти
🥰 — Они идентичны; различий нет
⚡️ — IEnumerable поддерживает async, а IQueryable — нет
🔹 Курс «Программирование на языке Python»
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib
Библиотека задач по C#
👍49❤🔥1🌚1
В .NET приложении необходимо обрабатывать миллионы строк текста с минимальными расходами памяти и максимальной скоростью. Какой подход будет наиболее правильным?
👾 — Использовать string конкатенацию (+) в цикле
👍 — Применить StringBuilder для конкатенации строк
🥰 — Сохранять строки в List<string> и объединять их через string.Join
⚡️ — Использовать Span<char> или Memory<char> для работы с подстроками без создания новых объектов
Библиотека задач по C#
👾 — Использовать string конкатенацию (+) в цикле
👍 — Применить StringBuilder для конкатенации строк
🥰 — Сохранять строки в List<string> и объединять их через string.Join
⚡️ — Использовать Span<char> или Memory<char> для работы с подстроками без создания новых объектов
Библиотека задач по C#
👍28⚡7🔥1
Решать задачи — хорошо. Понимать суть — бесценно
Можно бесконечно гонять задачи на LeetCode, но без фундаментального понимания алгоритмов и паттернов ты просто запоминаешь решения, а не учишься мыслить инженерно.
Акция 1 + 2:
Забирай три курса по цене одного. Оплачиваешь самый дорогой слот, два других получаешь бесплатно.
Идеальный стек для практики:
— Алгоритмы и структуры данных (база);
— Архитектуры и шаблоны проектирования.
Прокачать скиллы
До 31 декабря.
Помощь с выбором: @manager_proglib
Можно бесконечно гонять задачи на LeetCode, но без фундаментального понимания алгоритмов и паттернов ты просто запоминаешь решения, а не учишься мыслить инженерно.
Акция 1 + 2:
Забирай три курса по цене одного. Оплачиваешь самый дорогой слот, два других получаешь бесплатно.
Идеальный стек для практики:
— Алгоритмы и структуры данных (база);
— Архитектуры и шаблоны проектирования.
Прокачать скиллы
До 31 декабря.
Помощь с выбором: @manager_proglib
У вас есть сервис на .NET, обрабатывающий большое количество параллельных запросов к базе данных. При нагрузочном тестировании вы замечаете, что количество потоков резко растёт, а производительность падает. Какой подход будет наиболее правильным для оптимизации?
👾 — Использовать Task.Run вокруг всех вызовов к базе, чтобы явно распараллелить операции
👍 — Применить асинхронный доступ к базе данных (async/await) с использованием I/O-bound операций
🥰 — Увеличить ThreadPool.SetMinThreads, чтобы обрабатывать больше потоков одновременно
⚡️ — Переписать сервис на синхронный код, чтобы избежать overhead от async/await
Библиотека задач по C#
👾 — Использовать Task.Run вокруг всех вызовов к базе, чтобы явно распараллелить операции
👍 — Применить асинхронный доступ к базе данных (async/await) с использованием I/O-bound операций
🥰 — Увеличить ThreadPool.SetMinThreads, чтобы обрабатывать больше потоков одновременно
⚡️ — Переписать сервис на синхронный код, чтобы избежать overhead от async/await
Библиотека задач по C#
👍17⚡1
В .NET у вас есть метод, который вызывается в высоконагруженном сервисе миллионы раз в секунду. В профилировании видно, что он активно генерирует мусор, перегружая GC. Какой из подходов будет наиболее правильным для оптимизации?
👾 — Переписать метод на небезопасный код (unsafe) и работать напрямую с указателями
👍 — Использовать Span<T> и пулы объектов (ArrayPool<T>, ObjectPool<T>) для снижения количества аллокаций
🥰 — Увеличить размер heap в настройках CLR, чтобы GC срабатывал реже
⚡️ — Запустить несколько экземпляров метода параллельно, чтобы распределить нагрузку на разные потоки
Библиотека задач по C#
👾 — Переписать метод на небезопасный код (unsafe) и работать напрямую с указателями
👍 — Использовать Span<T> и пулы объектов (ArrayPool<T>, ObjectPool<T>) для снижения количества аллокаций
🥰 — Увеличить размер heap в настройках CLR, чтобы GC срабатывал реже
⚡️ — Запустить несколько экземпляров метода параллельно, чтобы распределить нагрузку на разные потоки
Библиотека задач по C#
👍19