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

ConfigureAwait (onwaar) behels 'n taak wat reeds voltooi is teen die tyd waarop dit gewag word (wat eintlik ongelooflik algemeen is), dan is die ConfigureAwait (vals) sal betekenisloos wees, aangesien die draad voortgaan om kode in die metode uit te voer hierna en steeds in dieselfde konteks wat voorheen daar was.

Vervolgens kan 'n mens ook vra, wat is die nut van ConfigureAwait vals?

ConfigureAwait ( onwaar ) stel die taak op sodat voortsetting na die wag nie in die oproeperkonteks uitgevoer hoef te word nie, en vermy dus enige moontlike dooiepunte.

Behalwe hierbo, wat is SynchronizationContext? Sinchronisasiekonteks is 'n voorstelling van die huidige omgewing waarin ons kode loop. Dit wil sê, in 'n asinchrone program, wanneer ons 'n eenheid werk na 'n ander draad delegeer, neem ons die huidige omgewing vas en stoor dit in 'n geval van Sinchronisasiekonteks en plaas dit op die taakvoorwerp.

As u dit in ag neem, wat is die nut van ConfigureAwait?

Met behulp van ConfigureAwait (onwaar) om dooiepunte te vermy, is 'n gevaarlike praktyk. Jy sou moes gebruik ConfigureAwait (onwaar) vir elke wag in die oorganklike sluiting van alle metodes wat deur die blokkeerkode genoem word, insluitend alle derde- en tweedeparty-kode. Met behulp van ConfigureAwait (onwaar) om dooiepunt te vermy, is op sy beste net 'n hack).

Wat is GetAwaiter?

GetAwaiter () metode, wat 'n instansie terugstuur wat 'n GetResult() metode het. Wanneer dit op 'n foutiewe taak gebruik word, sal GetResult() die oorspronklike uitsondering propageer (dit is hoe "wagtaak;" sy gedrag kry). GetResult() omdat dit die taakuitsonderings bewaar in plaas daarvan om dit in 'n AggregateException te verpak.

Aanbeveel: