Чем опасен Task.Factory.StartNew по сравнению с Task.Run для offload CPU?
👾 — Он всегда запускает работу в новом процессе
👍 — Наследует TaskScheduler.Current, не разворачивает вложенные задачи, часто требует опций/Unwrap; для фоновой работы предпочтителен Task.Run (ThreadPool, подходящие опции)
🥰 — Он быстрее и безопаснее во всех случаях
⚡️ — Он автоматически применяет ConfigureAwait(false)
Библиотека задач по C#
👾 — Он всегда запускает работу в новом процессе
👍 — Наследует TaskScheduler.Current, не разворачивает вложенные задачи, часто требует опций/Unwrap; для фоновой работы предпочтителен Task.Run (ThreadPool, подходящие опции)
🥰 — Он быстрее и безопаснее во всех случаях
⚡️ — Он автоматически применяет ConfigureAwait(false)
Библиотека задач по C#
👍6
🖤 ЧЕРНАЯ ПЯТНИЦА: СКИДКА 40%
Что общего между Black Friday и подготовкой к собесам? Оба случаются раз в год, и оба нельзя пропустить! 😎
🔥 Курсы со скидкой 40% до конца ноября:
🐍 Python
📐 Математика
🤖 AI
🔢 Алгоритмы и структуры
Пока другие покупают кофемашины и телевизоры, инвестируй в себя📈
Что общего между Black Friday и подготовкой к собесам? Оба случаются раз в год, и оба нельзя пропустить! 😎
🔥 Курсы со скидкой 40% до конца ноября:
🐍 Python
📐 Математика
🤖 AI
🔢 Алгоритмы и структуры
Пока другие покупают кофемашины и телевизоры, инвестируй в себя📈
Что произойдет, если попытаться присвоить значение переменной readonly вне конструктора?
👾 — Ошибка компиляции
👍 — Ошибка выполнения
🥰 — Переменная будет изменена
⚡️ — Переменная станет null
Библиотека задач по C#
👾 — Ошибка компиляции
👍 — Ошибка выполнения
🥰 — Переменная будет изменена
⚡️ — Переменная станет null
Библиотека задач по C#
👾36🥱1
Как сделать «асинхронный lock» вокруг критической секции?
👾 — lock работает через await
👍 — await semaphore.WaitAsync() с SemaphoreSlim(1, 1) и try/finally Release()
🥰 — Monitor.Enter/Exit поддерживает await
⚡️ — Interlocked гарантирует эксклюзивный доступ ко всей секции
Библиотека задач по C#
👾 — lock работает через await
👍 — await semaphore.WaitAsync() с SemaphoreSlim(1, 1) и try/finally Release()
🥰 — Monitor.Enter/Exit поддерживает await
⚡️ — Interlocked гарантирует эксклюзивный доступ ко всей секции
Библиотека задач по C#
👍21
📊 Задача с собеседования
Если не понимаете с какой стороны подступиться к задаче, то пора подтянуть математику.
🎓 Именно этому посвящен курс экспресс-курс «Математика для Data Science» от Proglib Academy:
— работа с векторами и матрицами;
— линейная регрессия и метод наименьших квадратов;
— вероятности, распределения, статистика;
— и многое другое.
⏳ Старт: 4 декабря
🔥 Скидка: 40% до конца ноября
👉 Подключиться к курсу
Имеются данные о продажах за последние 12 месяцев. Требуется оценить наличие линейной зависимости между количеством заключённых сделок и объёмом выручки, а также построить прогноз выручки при достижении 150 сделок.
Если не понимаете с какой стороны подступиться к задаче, то пора подтянуть математику.
🎓 Именно этому посвящен курс экспресс-курс «Математика для Data Science» от Proglib Academy:
— работа с векторами и матрицами;
— линейная регрессия и метод наименьших квадратов;
— вероятности, распределения, статистика;
— и многое другое.
⏳ Старт: 4 декабря
🔥 Скидка: 40% до конца ноября
👉 Подключиться к курсу
Как логировать в Microsoft.Extensions.Logging с минимумом аллокаций на горячем пути?
👾 — Интерполяция строк: $"User {id} logged in"
👍 — LoggerMessage.Define/DefineScope с кэшированными делегатами (структурированное логирование)
🥰 — Console.WriteLine — самый лёгкий вариант
⚡️ — Создавать новый EventSource на каждое сообщение
Библиотека задач по C#
👾 — Интерполяция строк: $"User {id} logged in"
👍 — LoggerMessage.Define/DefineScope с кэшированными делегатами (структурированное логирование)
🥰 — Console.WriteLine — самый лёгкий вариант
⚡️ — Создавать новый EventSource на каждое сообщение
Библиотека задач по C#
👍10👾2😢1
Чем BackgroundService отличается от IHostedService?
👾 — Предназначен только для таймеров
👍 — Это базовый класс с циклом ExecuteAsync; IHostedService — лишь интерфейс Start/Stop без цикла
🥰 — Запускается только в Debug
⚡️ — Не поддерживает отмену CancellationToken
Библиотека задач по C#
👾 — Предназначен только для таймеров
👍 — Это базовый класс с циклом ExecuteAsync; IHostedService — лишь интерфейс Start/Stop без цикла
🥰 — Запускается только в Debug
⚡️ — Не поддерживает отмену CancellationToken
Библиотека задач по C#
👍26😍1
Что верно про BackgroundService в .NET?
👾 — Это таймер, который сам перезапускает приложение при сбое
👍 — Базовый класс для IHostedService: реализуете долгоживущую работу в ExecuteAsync(CancellationToken), отмена через stoppingToken
🥰 — Запускается только по расписанию Cron
⚡️ — Обязателен в ASP.NET Core для всех контроллеров
Библиотека задач по C#
👾 — Это таймер, который сам перезапускает приложение при сбое
👍 — Базовый класс для IHostedService: реализуете долгоживущую работу в ExecuteAsync(CancellationToken), отмена через stoppingToken
🥰 — Запускается только по расписанию Cron
⚡️ — Обязателен в ASP.NET Core для всех контроллеров
Библиотека задач по C#
👍27😁3
Что вызовет await using у типа, реализующего и IDisposable, и IAsyncDisposable?
👾 — Сначала Dispose(), затем DisposeAsync()
👍 — Только DisposeAsync()
🥰 — Только Dispose()
⚡️ — Зависит от JIT, случайный выбор
Библиотека задач по C#
👾 — Сначала Dispose(), затем DisposeAsync()
👍 — Только DisposeAsync()
🥰 — Только Dispose()
⚡️ — Зависит от JIT, случайный выбор
Библиотека задач по C#
👍21
Что делает await Task.Yield()?
👾 — Переносит работу на отдельный поток пула
👍 — Отдаёт управление планировщику и асинхронно продолжит после yield (в текущем контексте, если он есть); не offload’ит работу
🥰 — Усыпляет поток на один квант
⚡️ — Гарантирует переключение на UI-поток
Библиотека задач по C#
👾 — Переносит работу на отдельный поток пула
👍 — Отдаёт управление планировщику и асинхронно продолжит после yield (в текущем контексте, если он есть); не offload’ит работу
🥰 — Усыпляет поток на один квант
⚡️ — Гарантирует переключение на UI-поток
Библиотека задач по C#
👍19👾1
Media is too big
VIEW IN TELEGRAM
🔥 Закрой пробелы в математике за 8 недель
Валишься на вопросах про математику на собесах?
Proglib Academy запускает курс «Математика для Data Science», чтобы помочь тебе получить вакансию мечты!
🔎 Тебя ждут:
→ топовые эксперты, один из них на видео — Мария Тихонова. Мария — кандидат компьютерных наук, руководитель исследовательского направления SberAI, доцент факультета компьютерных наук и преподаватель НИУ ВШЭ;
→ живые вебинары, на которых можно задать вопросы спикерам;
→ доступ к материалам в записи, если не успели на лекцию и чат;
→ 3 задания с практикой на Python и финальный проект с подробной обратной связью от экспертов курса;
→ актуальные знания: программа разработана в ноябре 2025г;
→ программа без воды — 2 месяца только самого нужного для старта.
👉 Пройди короткий тест и узнай свой уровень математики.
Приятные бонусы:
🎁 скидка 40% до 30 ноября;
🎁 оплати до конца ноября → курс «Школьная математика» в подарок.
🔗 Подробнее о курсе
Валишься на вопросах про математику на собесах?
Proglib Academy запускает курс «Математика для Data Science», чтобы помочь тебе получить вакансию мечты!
🔎 Тебя ждут:
→ топовые эксперты, один из них на видео — Мария Тихонова. Мария — кандидат компьютерных наук, руководитель исследовательского направления SberAI, доцент факультета компьютерных наук и преподаватель НИУ ВШЭ;
→ живые вебинары, на которых можно задать вопросы спикерам;
→ доступ к материалам в записи, если не успели на лекцию и чат;
→ 3 задания с практикой на Python и финальный проект с подробной обратной связью от экспертов курса;
→ актуальные знания: программа разработана в ноябре 2025г;
→ программа без воды — 2 месяца только самого нужного для старта.
👉 Пройди короткий тест и узнай свой уровень математики.
Приятные бонусы:
🎁 скидка 40% до 30 ноября;
🎁 оплати до конца ноября → курс «Школьная математика» в подарок.
🔗 Подробнее о курсе
Что означает ref readonly возврат из метода?
👾 — Можно присвоить новое значение через эту ссылку
👍 — Это ссылка только для чтения на исходные данные; запись запрещена, нельзя возвращать ссылку на временный
🥰 — Это обычная копия значения на стеке
⚡️ — Разрешено только для struct
Библиотека задач по C#
👾 — Можно присвоить новое значение через эту ссылку
👍 — Это ссылка только для чтения на исходные данные; запись запрещена, нельзя возвращать ссылку на временный
🥰 — Это обычная копия значения на стеке
⚡️ — Разрешено только для struct
Библиотека задач по C#
👍19
Что верно про параметрический конструктор без параметров в struct (C# 10+)?
👾 — И new S(), и default(S) всегда вызывают его
👍 — new S() вызовет ваш ctor; default(S)/массивы дадут нулевую инициализацию без вызова ctor
🥰 — Такой конструктор запрещён
⚡️ — В Release поведение неопределённо
🔹 Курс «Программирование на языке Python»
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib
Библиотека задач по C#
👾 — И new S(), и default(S) всегда вызывают его
👍 — new S() вызовет ваш ctor; default(S)/массивы дадут нулевую инициализацию без вызова ctor
🥰 — Такой конструктор запрещён
⚡️ — В Release поведение неопределённо
🔹 Курс «Программирование на языке Python»
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib
Библиотека задач по C#
👾4👍1
Чем SelectMany отличается от Select в LINQ?
👾 — SelectMany быстрее, но делает то же самое
👍 — SelectMany плющит последовательность последовательностей в одну; Select лишь проецирует, оставляя вложенность
🥰 — SelectMany работает только с массивами
⚡️ — Select автоматически плоским делает коллекции строк
🔹 Курс «Программирование на языке Python»
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib
Библиотека задач по C#
👾 — SelectMany быстрее, но делает то же самое
👍 — SelectMany плющит последовательность последовательностей в одну; Select лишь проецирует, оставляя вложенность
🥰 — SelectMany работает только с массивами
⚡️ — Select автоматически плоским делает коллекции строк
🔹 Курс «Программирование на языке Python»
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib
Библиотека задач по C#
👍28🌚4❤1
Чем IAsyncEnumerable<T> отличается от Task<IEnumerable<T>> для стриминга?
👾 — Ничем: оба буферизуют весь результат
👍 — IAsyncEnumerable<T> отдаёт элементы по мере готовности, без полной материализации; Task<IEnumerable<T>> возвращает коллекцию разом
🥰 — IAsyncEnumerable<T> не поддерживает отмену
⚡️ — Task<IEnumerable<T>> всегда быстрее
🔹 Курс «Программирование на языке Python»
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib
Библиотека задач по C#
👾 — Ничем: оба буферизуют весь результат
👍 — IAsyncEnumerable<T> отдаёт элементы по мере готовности, без полной материализации; Task<IEnumerable<T>> возвращает коллекцию разом
🥰 — IAsyncEnumerable<T> не поддерживает отмену
⚡️ — Task<IEnumerable<T>> всегда быстрее
🔹 Курс «Программирование на языке Python»
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib
Библиотека задач по C#
👍25🥰1
Что реально гарантирует volatile для поля?
👾 — Делает все операции (например, x++) атомарными
👍 — Обеспечивает видимость между потоками и порядок (acquire/release) для чтений/записей, но не делает составные операции атомарными
🥰 — Эквивалентно lock по безопасности
⚡️ — Ускоряет доступ к памяти
🔹 Курс «Программирование на языке Python»
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib
Библиотека задач по C#
👾 — Делает все операции (например, x++) атомарными
👍 — Обеспечивает видимость между потоками и порядок (acquire/release) для чтений/записей, но не делает составные операции атомарными
🥰 — Эквивалентно lock по безопасности
⚡️ — Ускоряет доступ к памяти
🔹 Курс «Программирование на языке Python»
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib
Библиотека задач по C#
👍11
В чем разница между Update и FixedUpdate в Unity, и какие сценарии лучше всего подходят для каждого из них?
В Unity, Update вызывается один раз за кадр и идеально подходит для большинства обновлений игровой логики, таких как получение ввода пользователя и перемещение персонажей. FixedUpdate, с другой стороны, вызывается с фиксированным интервалом времени и лучше всего подходит для обновлений, связанных с физикой, таких как применение сил, поскольку это обеспечивает более стабильное и предсказуемое поведение физической системы.
🔹 Курс «Программирование на языке Python»
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib
Библиотека задач по C#
🔹 Курс «Программирование на языке Python»
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib
Библиотека задач по C#
Зачем init-сеттеры?
👾 — Чтобы свойство было доступно только внутри класса
👍 — Чтобы разрешить установку только при инициализации (конструктор/object initializer), после — неизменяемо; удобно для иммутабельных моделей/records
🥰 — Чтобы свойство стало readonly на уровне IL
⚡ — Чтобы сделать свойство thread-safe без синхронизации
🔹 Курс «Программирование на языке Python»
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib
Библиотека задач по C#
👾 — Чтобы свойство было доступно только внутри класса
👍 — Чтобы разрешить установку только при инициализации (конструктор/object initializer), после — неизменяемо; удобно для иммутабельных моделей/records
🥰 — Чтобы свойство стало readonly на уровне IL
⚡ — Чтобы сделать свойство thread-safe без синхронизации
🔹 Курс «Программирование на языке Python»
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib
Библиотека задач по C#
👍12
🎄 С Нового года начну учиться — знакомо?
А потом январь — освоюсь после праздников, февраль — доделаю текущие дела... Не откладывай на следующий год то, что можно начать уже в этом.
🗓️ 4 декабря стартует экспресс-курс «Математика для Data Science»— всё, что нужно для уверенных ответов на собесах:
→ 2 месяца без воды;
→ обновлённая программа (ноябрь 2025);
→ живые вебинары с экспертами;
→ записи всех занятий;
→ практика на Python + финальный проект с фидбэком.
Формат: 2 месяца интенсива и к началу следующего года ты готов к собесам.
Пока другие будут собираться с мыслями после НГ, ты уже будешь на полпути к офферу мечты.
🎁 Только до 30 ноября:
→ скидка 40% на курс;
→ курс «Базовая математика» в подарок;
→ бесплатный тест уровня математики.
👉🏻 Хочешь на курс → пиши менеджеру
А потом январь — освоюсь после праздников, февраль — доделаю текущие дела... Не откладывай на следующий год то, что можно начать уже в этом.
🗓️ 4 декабря стартует экспресс-курс «Математика для Data Science»— всё, что нужно для уверенных ответов на собесах:
→ 2 месяца без воды;
→ обновлённая программа (ноябрь 2025);
→ живые вебинары с экспертами;
→ записи всех занятий;
→ практика на Python + финальный проект с фидбэком.
Формат: 2 месяца интенсива и к началу следующего года ты готов к собесам.
Пока другие будут собираться с мыслями после НГ, ты уже будешь на полпути к офферу мечты.
🎁 Только до 30 ноября:
→ скидка 40% на курс;
→ курс «Базовая математика» в подарок;
→ бесплатный тест уровня математики.
👉🏻 Хочешь на курс → пиши менеджеру
Что делает оператор ! (null-forgiving)?
👾 — Добавляет runtime-проверку и бросает NullReferenceException при null
👍 — Лишь подавляет предупреждение анализатора nullable; на рантайм не влияет
🥰 — Навсегда делает тип non-nullable
⚡ — Автоматически кидает ArgumentNullException
🔹 Курс «Программирование на языке Python»
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib
Библиотека задач по C#
👾 — Добавляет runtime-проверку и бросает NullReferenceException при null
👍 — Лишь подавляет предупреждение анализатора nullable; на рантайм не влияет
🥰 — Навсегда делает тип non-nullable
⚡ — Автоматически кидает ArgumentNullException
🔹 Курс «Программирование на языке Python»
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib
Библиотека задач по C#
👍8