У дома развитие Какво е обаждане на асинхронен метод? - определение от техопедия

Какво е обаждане на асинхронен метод? - определение от техопедия

Съдържание:

Anonim

Определение - Какво означава Обаждане на асинхронен метод?

Обаждането на асинхронен метод е метод, използван в програмирането на .NET, който се връща към обаждащия се непосредствено преди завършването на неговата обработка и без да блокира извикващата нишка.


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


Асинхронните методи помагат да се оптимизира изпълнението на ресурси, което води до мащабируемо приложение. Те се използват за изпълнение на отнемащи време задачи като отваряне на големи файлове, свързване към отдалечени компютри, заявка на база данни, извикване на уеб услуги и уеб форми ASP.NET.


Извикването на асинхронен метод може също да бъде наричано извикване на асинхронен метод (AMI).

Techopedia обяснява асинхронен метод за повикване

Асинхронен метод се различава от синхронен метод по начина, по който се връща от повикването. Докато повикването на асинхронен метод се връща незабавно, което позволява на извикващата програма да изпълнява други операции, обажданията на синхронния метод изчакват метода да завърши, преди да продължите с програмния поток.


Рамката .NET има вградена асинхронна инфраструктура, така че всеки метод може да бъде извикан асинхронно, без да променя своя код.


.NET Framework предоставя два модела на проектиране за реализиране на асинхронен метод, които са тези, използващи асинхронни делегати (IASyncResult обекти) и събития. Моделът на асинхронните делегати е по-сложен и осигурява гъвкавост, което го прави подходящ за различни сложни модели на програмиране. Моделът, основан на събития, е прост и трябва да се използва в повечето случаи.


В модела на асинхронния делегат делегатният обект използва два метода: BeginInvoke и EndInvoke. BeginInvoke има списък с параметри, които са подобни на неговата обвита функция, заедно с два допълнителни незадължителни параметъра; тя връща обекта IAsyncResult. EndInvoke връща два параметъра (вън и тип ref) заедно с обекта IAsyncResult. BeginInvoke се използва за иницииране на асинхронно повикване, докато EndInvoke се използва за извличане на резултатите от асинхронното повикване.


Асинхронните модели на базата на събития използват клас, който има един или повече методи, наречени MethodNameAsync, които имат съответните синхронни версии, които се изпълняват в текущата нишка. Моделите, базирани на събития, могат също да имат метод на събитие MethodNameCompleted и метод MethodNameAsyncCancel. Този модел дава възможност на класа да комуникира с чакащи асинхронни операции, използвайки модела на делегат на събитие.


Следват няколко съвета, свързани с асинхронните методи:

  • За висока съвместимост трябва да се избягват асинхронни методи
  • Трябва да се внимава, докато се предават споделени препратки към обекти
  • EndXXX (наречен в края на асинхронна операция) трябва да бъде извикан, за да пренасочи изключения и да избегне неуспех
  • Чрез улавяне и запазване на всички обекти на изключение в асинхронен метод, той може да бъде преоткрит по време на повикването EndXXX
  • Контролите в потребителския интерфейс, които инициират продължителни асинхронни операции, трябва да бъдат деактивирани, ако са необходими само за тази цел
  • Асинхронните методи трябва да се прилагат с разбиране за многопоточност и където те се оказват по-ефективни от използването на синхронни методи.
Какво е обаждане на асинхронен метод? - определение от техопедия