ConfigureAwait дегеніміз не?
ConfigureAwait дегеніміз не?

Бейне: ConfigureAwait дегеніміз не?

Бейне: ConfigureAwait дегеніміз не?
Бейне: How To Achieve Synchronization In C# While Doing Async Await Multithreaded Programming - .NET Core 2024, Қараша
Anonim

ConfigureAwait (жалған) күтілген уақытқа дейін орындалған тапсырманы қамтиды (бұл өте кең таралған), содан кейін ConfigureAwait (жалған) мағынасыз болады, өйткені ағын осыдан кейін әдісте кодты орындауды жалғастырады және бұрынғыдай контексте.

Әрі қарай, ConfigureAwait false нені пайдалану керек деген сұрақ туындауы мүмкін.

ConfigureAwait ( жалған ) күтуден кейінгі жалғастыруды қоңырау шалушы контекстінде іске қосу қажет болмайтындай етіп конфигурациялайды, сондықтан кез келген ықтимал тығырықтан аулақ болады.

Жоғарыдан басқа, SynchronizationContext дегеніміз не? SynchronizationContext біздің код жұмыс істейтін ағымдағы ортаның көрінісі болып табылады. Яғни, асинхронды бағдарламада жұмыс бірлігін басқа ағынға бергенде, біз ағымдағы ортаны түсіріп, оны келесі данада сақтаймыз. SynchronizationContext және оны Тапсырма нысанына қойыңыз.

Осыны ескере отырып, ConfigureAwait нені пайдаланады?

Қолдану ConfigureAwait (жалған) тығырықтан аулақ болу - қауіпті тәжірибе. Сіз керек еді ConfigureAwait пайдаланыңыз (жалған) барлық үшінші және екінші тарап кодын қоса блоктау коды арқылы шақырылған барлық әдістердің транзиттік жабылуын күту үшін. Қолдану ConfigureAwait (жалған) тығырықтан аулақ болу - бұл ең жақсы жағдайда бұзу).

GetAwaiter дегеніміз не?

GetAwaiter () әдісі, ол GetResult() әдісі бар дананы қайтарады. Қате тапсырмада пайдаланылған кезде, GetResult() бастапқы ерекше жағдайды таратады («тапсырманы күту;» өз әрекетін осылай алады). GetResult() себебі ол AggregateException ішіне орау орнына тапсырма ерекшеліктерін сақтайды.

Ұсынылған: