Асинхронне програмування: види, класифікація, принципи програмування, концепція, значення і застосування

Розуміння і профілювання C #

Microsoft і спільнота .NET дуже спростили АП завдяки реалізації асинхронного очікування в C #. Останні версії ASP.NET активно використовують його для підвищення продуктивності. Багато інструменти для моніторингу продуктивності і профілювання намагаються підтримувати і візуалізувати продуктивність асинхронного програмування 1С. Продукти Stackify Prefix & Retrace мають відмінну підтримку додатків, що використовують C # async await. Для початку потрібно зрозуміти, як насправді працює-код, що використовує async awai” і HttpClient в якості прикладу.

Використовуючи ILSpy, можна побачити, як компілятор перетворює цей код у AsyncState Machine. Кінцевий автомат виконує весь складний код під прикриттям, що дозволяє розробникам, писати асинхронний код.

Профілювання асинхронного програмування в C 5 0 складним, тому що він перетинає потоки. Традиційно, метод і всі виклики його дочірніх методів відбуваються в одному потоці. Це полегшує розуміння відносин між батьківськими та дочірніми методами. З асинхронним кодом це зовсім інша історія. Батьківський метод запускається в одному потоці. Коли починається операція вводу-виводу, код в цьому потоці закінчується. Коли операція вводу-виводу завершується, код продовжує виконуватися в новому потоці. Зв’язати код між цими потоками, як частина більш великої транзакції, досить складно.