Wat is ConfigureAwait?
Wat is ConfigureAwait?

Video: Wat is ConfigureAwait?

Video: Wat is ConfigureAwait?
Video: Which do I use, ConfigureAwait True or False? 2024, November
Anonim

Configureer Wachten (false) een taak betreft die al is voltooid tegen de tijd dat erop wordt gewacht (wat eigenlijk ongelooflijk gebruikelijk is), dan is de Configureer Wachten (false) zal zinloos zijn, omdat de thread hierna code blijft uitvoeren in de methode en nog steeds in dezelfde context die er eerder was.

Vervolgens kan men zich ook afvragen, wat is het gebruik van ConfigureAwait false?

Configureer Wachten ( vals ) configureert de taak zo dat voortzetting na het wachten niet hoeft te worden uitgevoerd in de context van de beller, waardoor mogelijke impasses worden vermeden.

Wat is naast bovenstaande SynchronizationContext? SynchronisatieContext is een weergave van de huidige omgeving waarin onze code wordt uitgevoerd. Dat wil zeggen, in een asynchroon programma, wanneer we een werkeenheid delegeren naar een andere thread, vangen we de huidige omgeving op en slaan we deze op in een instantie van SynchronisatieContext en plaats het op het taakobject.

Dit in overweging nemend, wat is het nut van ConfigureAwait?

Gebruik makend van Configureer Wachten (false) om impasses te vermijden is een gevaarlijke praktijk. Je zou moeten gebruik ConfigureAwait (false) voor elke wait in de transitieve afsluiting van alle methoden die door de blokkeringscode worden aangeroepen, inclusief alle code van derden en van derden. Gebruik makend van Configureer Wachten (false) om een impasse te voorkomen is op zijn best gewoon een hack).

Wat is GetAwaiter?

GetAwaiter () methode, die een instantie retourneert die een GetResult() methode heeft. Bij gebruik op een defecte taak, zal GetResult() de oorspronkelijke uitzondering propageren (dit is hoe " wait task; " zijn gedrag krijgt). GetResult() omdat het de taakuitzonderingen behoudt in plaats van ze in een AggregateException te verpakken.

Aanbevolen: