.NET

Async/await і патерни

async/await, Task, ValueTask, ConfigureAwait, cancellation tokens, паралельне виконання, deadlocks

26 питань зі співбесід·
Senior
1

Яка основна роль ключового слова 'await' в асинхронному методі?

Відповідь

Ключове слово await призупиняє виконання асинхронного методу до завершення Task, водночас звільняючи потік, що викликав, для обробки інших завдань. Це дозволяє уникнути блокування потоку та покращує масштабованість застосунку. На відміну від Task.Wait() або Task.Result, які блокують потік, await забезпечує ефективне використання ресурсів thread pool.

2

Чому слід уникати async void, окрім обробників подій?

Відповідь

Методи async void не можна очікувати (await), а винятки, кинуті всередині, не можуть бути перехоплені кодом, що викликав, що призводить до збою застосунку. Крім того, неможливо провести модульне тестування методу async void, оскільки немає Task для очікування. Обробники подій є винятком, оскільки вони викликаються фреймворком і не можуть повертати Task.

3

У якому випадку слід надавати перевагу ValueTask<T> над Task<T>?

Відповідь

ValueTask — це value type, який уникає виділення в heap, коли результат уже доступний синхронно, наприклад у кеші. Це зменшує навантаження на garbage collector у високопродуктивних сценаріях. Task завжди виділяється в heap, навіть якщо результат синхронний. Використовуйте ValueTask лише тоді, коли приріст продуктивності вимірюваний, оскільки неправильне використання може погіршити продуктивність.

4

Яке важливе обмеження застосовується до ValueTask<T> порівняно з Task<T>?

5

Яка основна мета ConfigureAwait(false) у бібліотеці .NET?

+23 питань зі співбесід

Інші теми співбесід .NET

Основи C#

Junior
25 запитань

LINQ & Delegates

Junior
20 запитань

Основи мови C#

Junior
15 запитань

Основи ASP.NET Core

Junior
18 запитань

Життєвий цикл запиту в ASP.NET Core

Junior
20 запитань

Configuration & Settings

Junior
20 запитань

Життєвий цикл застосунку

Junior
20 запитань

Dependency Injection

Mid-Level
24 запитань

Entity Framework Core

Mid-Level
25 запитань

Minimal APIs

Mid-Level
18 запитань

Розробка Web API

Mid-Level
22 запитань

Async в ASP.NET Core

Mid-Level
20 запитань

Authentication & Authorization

Mid-Level
18 запитань

HttpClient & Networking

Mid-Level
20 запитань

Серіалізація JSON

Mid-Level
20 запитань

Entity Framework Core просунутий

Mid-Level
25 запитань

Розширені можливості C#

Mid-Level
20 запитань

Clean Architecture

Mid-Level
20 запитань

Logging, Monitoring & Observability

Mid-Level
22 запитань

Модульне тестування та xUnit

Mid-Level
20 запитань

Інтеграційні тести

Mid-Level
18 запитань

Docker & Containerization

Mid-Level
16 запитань

Керування пакетами NuGet

Mid-Level
16 запитань

Memory Management & GC

Senior
22 запитань

Реактивне програмування

Senior
24 запитань

.NET Design Patterns

Senior
24 запитань

Оптимізація продуктивності

Senior
22 запитань

Безпека та Best Practices

Senior
24 запитань

SignalR і реальний час

Senior
22 запитань

Архітектура мікросервісів

Senior
25 запитань

Опануй .NET для наступної співбесіди

Отримай доступ до всіх питань, flashcards, технічних тестів, вправ code review та симуляторів співбесід.

Почни безкоштовно