ConfigureAwait ni nini?
ConfigureAwait ni nini?

Video: ConfigureAwait ni nini?

Video: ConfigureAwait ni nini?
Video: How To Achieve Synchronization In C# While Doing Async Await Multithreaded Programming - .NET Core 2024, Novemba
Anonim

ConfigureAit (uongo) inahusisha kazi ambayo tayari imekamilika wakati inasubiriwa (ambayo kwa kweli ni ya kawaida sana), basi ConfigureAit (ya uwongo) haitakuwa na maana, kwani nyuzi inaendelea kutekeleza nambari katika njia baada ya hii na bado katika muktadha ule ule ambao ulikuwa hapo awali.

Baadaye, mtu anaweza pia kuuliza, matumizi ya ConfigureAwait ni ya uwongo?

ConfigureAit ( uongo ) husanidi kazi ili mwendelezo baada ya kungojea sio lazima uendeshwe katika muktadha wa mpigaji simu, kwa hivyo epuka vikwazo vyovyote vinavyowezekana.

Kando na hapo juu, SynchronizationContext ni nini? SynchronizationContext ni uwakilishi wa mazingira ya sasa ambayo msimbo wetu unaendeshwa. Hiyo ni, katika programu isiyolingana, tunapokabidhi kitengo cha kazi kwa uzi mwingine, tunanasa mazingira ya sasa na kuyahifadhi katika mfano wa SynchronizationContext na kuiweka kwenye Task object.

Kwa kuzingatia hili, matumizi ya ConfigureAwait ni nini?

Kutumia ConfigureAit (false) kuepuka mikwaju ni tabia hatari. Ungelazimika tumia ConfigureAwait (sio kweli) kwa kila kusubiri katika kufungwa kwa mpito kwa njia zote zinazoitwa na msimbo wa kuzuia, ikiwa ni pamoja na msimbo wote wa tatu na wa pili. Kutumia ConfigureAit (false) kuepuka msuguano ni udukuzi tu).

GetAwaiter ni nini?

GetAwaiter () njia, ambayo inarudisha mfano ambao una njia ya GetResult(). Inapotumiwa kwenye Task yenye hitilafu, GetResult() itaeneza ubaguzi wa asili (hivi ndivyo jinsi " kazi ya kusubiri; " inapata tabia yake). GetResult() kwa sababu inahifadhi tofauti za kazi badala ya kuzifunga AggregateException.

Ilipendekeza: