Què és ConfigureAwait?
Què és ConfigureAwait?

Vídeo: Què és ConfigureAwait?

Vídeo: Què és ConfigureAwait?
Vídeo: S06-11 - Actualités et Utilisation de ConfigureAwait C# 2024, De novembre
Anonim

Configura Espera (fals) implica una tasca que ja s'ha completat en el moment en què s'espera (que en realitat és increïblement comú), llavors el Configura Espera (fals) no tindrà sentit, ja que el fil continua executant codi en el mètode després d'això i encara en el mateix context que hi havia anteriorment.

Posteriorment, també es pot preguntar, per a què serveix ConfigureAwait false?

Configura Espera ( fals ) configura la tasca de manera que la continuació després de l'espera no s'hagi d'executar en el context de la trucada, evitant, per tant, possibles bloquejos.

Al costat de dalt, què és SynchronizationContext? Context de sincronització és una representació de l'entorn actual en què s'executa el nostre codi. És a dir, en un programa asíncron, quan deleguem una unitat de treball a un altre fil, capturem l'entorn actual i l'emmagatzemem en una instància de Context de sincronització i col·loqueu-lo a l'objecte Task.

Tenint-ho en compte, per a què serveix ConfigureAwait?

Utilitzant Configura Espera (fals) per evitar bloquejos és una pràctica perillosa. Hauries de fer-ho utilitzeu ConfigureAwait (fals) per a cada espera en el tancament transitiu de tots els mètodes cridats pel codi de bloqueig, inclòs tot el codi de tercers i de segona part. Utilitzant Configura Espera (fals) per evitar el bloqueig és, en el millor dels casos, només un hack).

Què és GetAwaiter?

GetAwaiter (), que retorna una instància que té un mètode GetResult(). Quan s'utilitza en una tasca amb error, GetResult() propagarà l'excepció original (així és com "espera la tasca;" obté el seu comportament). GetResult() perquè conserva les excepcions de la tasca en lloc d'embolicar-les en una AggregateException.

Recomanat: