.NET

Async/await & Patterns

async/await, Task, ValueTask, ConfigureAwait, cancellation tokens, parallel execution, deadlocks

26 questions d'entretien·
Senior
1

Quel est le rôle principal du mot-clé 'await' dans une méthode asynchrone ?

Réponse

Le mot-clé await suspend l'exécution de la méthode asynchrone jusqu'à ce que la Task soit terminée, tout en libérant le thread appelant pour qu'il puisse traiter d'autres tâches. Cela permet d'éviter le blocage du thread et d'améliorer la scalabilité de l'application. Contrairement à Task.Wait() ou Task.Result qui bloquent le thread, await permet une utilisation efficace des ressources thread pool.

2

Pourquoi faut-il éviter d'utiliser async void sauf pour les gestionnaires d'événements ?

Réponse

Les méthodes async void ne peuvent pas être attendues (await) et les exceptions levées à l'intérieur ne peuvent pas être capturées par le code appelant, provoquant un crash de l'application. De plus, il est impossible de tester unitairement une méthode async void car il n'y a pas de Task à attendre. Les gestionnaires d'événements sont l'exception car ils sont appelés par le framework et ne peuvent pas retourner Task.

3

Dans quel cas d'usage privilégier ValueTask<T> plutôt que Task<T> ?

Réponse

ValueTask est un value type qui évite l'allocation heap lorsque le résultat est déjà disponible de manière synchrone, comme dans un cache. Cela réduit la pression sur le garbage collector dans les scénarios haute performance. Task est toujours alloué sur le heap même si le résultat est synchrone. Utiliser ValueTask uniquement quand les gains de performance sont mesurables, car son usage incorrect peut dégrader les performances.

4

Quelle restriction importante s'applique à ValueTask<T> comparé à Task<T> ?

5

Quel est l'objectif principal de ConfigureAwait(false) dans une bibliothèque .NET ?

+23 questions d'entretien

Maîtrise .NET pour ton prochain entretien

Accède à toutes les questions, flashcards, tests techniques, exercices de code review et simulateurs d'entretien.

Commencer gratuitement