Trucada a mètode asíncron

Autora: Lewis Jackson
Data De La Creació: 8 Ser Possible 2021
Data D’Actualització: 25 Juny 2024
Anonim
Trucada a mètode asíncron - Tecnologia
Trucada a mètode asíncron - Tecnologia

Content

Definició: què significa la crida al mètode asincrònic?

Una trucada de mètode asíncron és un mètode utilitzat en la programació .NET que torna a la persona que truca immediatament abans de finalitzar el seu processament i sense bloquejar el fil de trucada.

Quan una aplicació truca a un mètode asíncron, pot executar simultàniament juntament amb l’execució del mètode asíncron que realitza la seva tasca. Un mètode asíncron s’executa en un fil separat del fil de l’aplicació principal. Els resultats de processament s'obtenen mitjançant una altra trucada a un altre fil.

Els mètodes asincrònics ajuden a optimitzar l'execució dels recursos que generen una aplicació escalable. S'utilitzen per executar tasques que requereixen temps, com obrir fitxers grans, connectar-se a equips remots, consultar una base de dades, trucar als serveis web i formularis web ASP.NET.

També es pot fer una crida a mètode asincrònic com a invocació de mètode asíncron (AMI).


Una introducció a Microsoft Azure i al Microsoft Cloud | Durant aquesta guia, podreu conèixer què és la informàtica en núvol i com Microsoft Azure us pot ajudar a migrar i executar el vostre negoci des del núvol.

Techopedia explica la trucada al mètode asíncron

El mètode asíncron es diferencia del mètode síncron de la manera com retorna de la trucada. Mentre que una trucada de mètode asíncrona torna immediatament, permetent al programa que truqui realitzar altres operacions, les trucades de mètode síncrones esperen que el mètode es completi abans de continuar amb el flux del programa.

El marc .NET té una infraestructura asíncrona integrada de manera que es pot invocar qualsevol mètode de manera asíncrona sense modificar el seu codi.

.NET framework proporciona dos patrons de disseny per implementar el mètode asíncron, que són els que utilitzen delegats asíncrons (objectes IASyncResult) i esdeveniments. El patró de delegats asíncrons és més complex i proporciona flexibilitat, cosa que el fa adequat a diversos models de programació complexos. El model basat en esdeveniments és senzill i s’ha d’utilitzar en la majoria dels casos.

En el patró de delegats asíncrons, un objecte delegat utilitza dos mètodes: BeginInvoke i EndInvoke. BeginInvoke té una llista de paràmetres, similars a la de la seva funció embolicada, juntament amb dos paràmetres opcionals addicionals; retorna l'objecte IAsyncResult. EndInvoke retorna dos paràmetres (tipus out i ref) juntament amb l'objecte IAsyncResult. BeginInvoke s'utilitza per iniciar la trucada asíncrona, mentre que EndInvoke s'utilitza per recuperar els resultats de la trucada asíncrona.

Els patrons asíncrons basats en esdeveniments utilitzen una classe que té un o més mètodes, anomenats MethodNameAsync, que tenen corresponents versions síncrones que s'executen al fil actual. Els patrons basats en esdeveniments també poden tenir un mètode MethodNameCompleted event i MethodNameAsyncCancel. Aquest patró permet a la classe comunicar-se amb operacions asíncrones pendents mitjançant el model d’esdeveniment delegat.

A continuació, es mostren alguns consells relacionats amb els mètodes asincrònics:


  • Per a una gran concurrència, s’han d’evitar mètodes asincrònics
  • Cal tenir cura al passar referències d’objectes compartits
  • S'ha de cridar EndXXX (anomenat al final d'una operació asíncrona) per tornar a expulsar les excepcions i evitar el fracàs
  • Captura i desant tots els objectes d’excepció en mètode asincrònic, es pot tornar a fer retrobar durant la trucada EndXXX
  • Els controls de la interfície d'usuari que inicien operacions asíncrones de llarga durada s'han d'inhabilitar si només són necessaris per a aquest propòsit.
  • Els mètodes asincrònics s’han d’implementar amb una comprensió del multitreball i on es demostra que són més eficients que l’ús de mètodes síncrons.