Qu'est-ce que ConfigureAwait ?
Qu'est-ce que ConfigureAwait ?

Vidéo: Qu'est-ce que ConfigureAwait ?

Vidéo: Qu'est-ce que ConfigureAwait ?
Vidéo: S06-11 - Actualités et Utilisation de ConfigureAwait C# 2024, Novembre
Anonim

ConfigurerAttendre (faux) implique une tâche qui est déjà terminée au moment où elle est attendue (ce qui est en fait incroyablement courant), alors le ConfigurerAttendre (false) n'aura pas de sens, car le thread continue d'exécuter du code dans la méthode après cela et toujours dans le même contexte que précédemment.

Par la suite, on peut aussi se demander, à quoi sert ConfigureAwait false ?

ConfigurerAttendre ( faux ) configure la tâche de sorte que la poursuite après l'attente n'ait pas à être exécutée dans le contexte de l'appelant, évitant ainsi d'éventuels blocages.

À côté de ci-dessus, qu'est-ce que SynchronizationContext ? Contexte de synchronisation est une représentation de l'environnement actuel dans lequel notre code s'exécute. Autrement dit, dans un programme asynchrone, lorsque nous déléguons une unité de travail à un autre thread, nous capturons l'environnement actuel et le stockons dans une instance de Contexte de synchronisation et placez-le sur l'objet Task.

En tenant compte de cela, à quoi sert ConfigureAwait ?

À l'aide de ConfigurerAttendre (faux) pour éviter les impasses est une pratique dangereuse. Vous auriez à utiliser ConfigureAwait (faux) pour chaque attente dans la fermeture transitive de toutes les méthodes appelées par le code de blocage, y compris tout le code tiers et secondaire. À l'aide de ConfigurerAttendre (faux) pour éviter l'impasse n'est au mieux qu'un hack).

Qu'est-ce que GetAwaiter ?

GetAwaiter (), qui renvoie une instance qui a une méthode GetResult(). Lorsqu'il est utilisé sur une tâche défaillante, GetResult() propagera l'exception d'origine (c'est ainsi que « wait task; » obtient son comportement). GetResult() car il préserve les exceptions de tâche au lieu de les envelopper dans une AggregateException.

Conseillé: