Асинхронний виклик методу

Автор: Lewis Jackson
Дата Створення: 8 Травень 2021
Дата Оновлення: 25 Червень 2024
Anonim
Asyncio и асинхронное программирование | Python 3, Питон 3
Відеоролик: Asyncio и асинхронное программирование | Python 3, Питон 3

Зміст

Визначення - Що означає виклик асинхронного методу?

Виклик асинхронного методу - це метод, який використовується в програмуванні .NET, який повертається до абонента безпосередньо перед завершенням його обробки і не блокує нитку виклику.

Коли програма викликає асинхронний метод, вона може одночасно виконувати разом із виконанням асинхронного методу, який виконує своє завдання. Асинхронний метод працює в потоці, окремому від основного потоку програми. Результати обробки отримуються через інший виклик в іншому потоці.

Асинхронні методи допомагають оптимізувати виконання ресурсів, що призводить до масштабованого застосування. Вони використовуються для виконання трудомістких завдань, таких як відкриття великих файлів, підключення до віддалених комп'ютерів, запит до бази даних, виклик веб-служб та веб-форм ASP.NET.

Виклик асинхронного методу також може називатися викликом асинхронного методу (AMI).


Вступ до Microsoft Azure та Microsoft Cloud | У цьому посібнику ви дізнаєтеся, що стосується хмарних обчислень та як Microsoft Azure може допомогти вам мігрувати та вести свій бізнес із хмари.

Техопедія пояснює виклик асинхронного методу

Асинхронний метод відрізняється від синхронного методу тим, як він повертається з виклику. У той час як виклик асинхронного методу повертається негайно, дозволяючи програмі, що викликає, виконувати інші операції, виклики синхронного методу чекають завершення методу, перш ніж продовжувати рух програми.

Рамка .NET має вбудовану асинхронну інфраструктуру, так що будь-який метод можна асинхронно викликати, не змінюючи його код.

.NET Framework пропонує дві схеми проектування для реалізації асинхронного методу - це ті, що використовують асинхронні делегати (об'єкти IASyncResult) та події. Шаблон асинхронних делегатів є більш складним і забезпечує гнучкість, завдяки чому він добре підходить до різних складних моделей програмування. Модель, що базується на подіях, проста і її слід використовувати в більшості випадків.

У шаблоні асинхронних делегатів об’єкт делегата використовує два методи: BeginInvoke та EndInvoke. BeginInvoke має список параметрів, схожих на функцію завершення, а також два додаткові необов'язкові параметри; він повертає об'єкт IAsyncResult. EndInvoke повертає два параметри (тип виходу та посилання) разом з об'єктом IAsyncResult. BeginInvoke використовується для ініціювання асинхронного виклику, тоді як EndInvoke використовується для отримання результатів асинхронного виклику.

Асинхронні шаблони на основі подій використовують клас, який має один або більше методів, названих MethodNameAsync, які мають відповідні синхронні версії, які виконуються на поточному потоці. Шаблони на основі подій можуть також мати події MethodNameCompleted та метод MethodNameAsyncCancel. Ця закономірність дозволяє класу спілкуватися з очікуючими асинхронними операціями за допомогою моделі делегування подій.

Нижче наведено кілька порад, пов’язаних з асинхронними методами:


  • Для високої одночасності потрібно уникати асинхронних методів
  • Необхідно бути обережним при передачі спільних посилань на об'єкти
  • EndXXX (викликається в кінці асинхронної операції) повинен бути викликаний для повторного скидання винятків та уникнення збою
  • Захоплюючи та зберігаючи всі об’єкти винятків в асинхронному методі, його можна повторно скинути під час виклику EndXXX
  • Елементи керування в інтерфейсі користувача, які ініціюють тривалі асинхронні операції, повинні бути відключені, якщо вони потрібні лише для цієї мети
  • Асинхронні методи повинні бути реалізовані з розумінням багатопотокової, і вони виявляються ефективнішими, ніж використання синхронних методів.