Asynkroninen menetelmäkutsu

Kirjoittaja: Lewis Jackson
Luomispäivä: 8 Saattaa 2021
Päivityspäivä: 25 Kesäkuu 2024
Anonim
Asynkroninen menetelmäkutsu - Tekniikka
Asynkroninen menetelmäkutsu - Tekniikka

Sisältö

Määritelmä - Mitä asynkroninen menetelmäkutsu tarkoittaa?

Asynkroninen menetelmäkutsu on .NET-ohjelmoinnissa käytetty menetelmä, joka palaa soittajalle välittömästi ennen prosessoinnin päättymistä ja estämättä kutsuvan säiettä.

Kun sovellus kutsuu asynkronista menetelmää, se voi suorittaa samanaikaisesti tehtäväänsä suorittavan asynkronisen menetelmän suorituksen kanssa. Asynkroninen menetelmä kulkee erillisessä säikeessä sovelluksen pääsäikeestä. Käsittelytulokset haetaan toisen puhelun kautta toisella säieellä.

Asynkroniset menetelmät auttavat optimoimaan resurssien suorittamisen johtaen skaalautuvaan sovellukseen. Niitä käytetään suorittamaan aikaa vieviä tehtäviä, kuten suurten tiedostojen avaamista, yhteyden muodostamista etätietokoneisiin, tietokannan hakuja, Web-palveluiden ja ASP.NET-Web-lomakkeiden kutsumista.

Asynkroniseen menetelmäkutsuun voidaan myös viitata asynkronisena menetelmän kutsuna (AMI).


Johdanto Microsoft Azureen ja Microsoft Cloud | Tämän oppaan läpi opit mitä pilvipalvelussa on kyse ja kuinka Microsoft Azure voi auttaa sinua siirtämään ja johtamaan yritystä pilvestä.

Techopedia selittää asynkronisen menetelmän puhelun

Asynkroninen menetelmä eroaa synkronisesta menetelmästä tavalla, jolla se palaa puhelusta. Vaikka asynkroninen menetelmäkutsu palaa välittömästi, jolloin kutsuva ohjelma voi suorittaa muita toimintoja, synkroniset menetelmäpuhelut odottavat menetelmän valmistumista loppuun ennen ohjelman jatkamista.

.NET-kehys on sisäinen asynkroninen infrastruktuuri, jotta mihin tahansa menetelmään voidaan kutsua asynkronisesti muuttamatta sen koodia.

.NET-kehys tarjoaa kaksi suunnittelumallia asynkronisen menetelmän toteuttamiseksi, jotka ovat asynkronisia edustajia (IASyncResult-objektit) ja tapahtumia käyttävät. Asynkroniset edustajat -malli on monimutkaisempi ja tarjoaa joustavuutta, minkä vuoksi se soveltuu hyvin erilaisiin monimutkaisiin ohjelmointimalleihin. Tapahtumapohjainen malli on yksinkertainen ja sitä tulisi käyttää useimmissa tapauksissa.

Asynkronisissa edustajien mallissa edustajaobjekti käyttää kahta menetelmää: BeginInvoke ja EndInvoke. BeginInvoke sisältää luettelon parametreista, jotka ovat samanlaisia ​​kuin sen kääritty toiminto, sekä kahdella lisävarusteella; se palauttaa IAsyncResult-objektin. EndInvoke palauttaa kaksi parametria (ulos- ja ref-tyyppi) yhdessä IAsyncResult-objektin kanssa. BeginInvoke -sovellusta käytetään asynkronisen puhelun aloittamiseen, kun taas EndInvoke -sovellusta käytetään asynkronisen puhelun tulosten hakemiseen.

Tapahtumapohjaiset asynkroniset mallit käyttävät luokkaa, jolla on yksi tai useampi menetelmä, nimeltään MethodNameAsync, joilla on vastaavat synkroniset versiot, jotka suorittavat nykyisessä säikeessä. Tapahtumapohjaisissa malleissa voi olla myös MethodNameCompleted -tapahtuma ja MethodNameAsyncCancel-menetelmä. Tämä malli antaa luokalle mahdollisuuden kommunikoida vireillä olevien asynkronisten toimintojen kanssa edustajan tapahtumamallilla.

Seuraavassa on muutamia asynkronisiin menetelmiin liittyviä vinkkejä:


  • Suuren samanaikaisuuden vuoksi asynkronisia menetelmiä on vältettävä
  • Jaettujen objektiviitteiden siirtämisen yhteydessä on oltava varovainen
  • EndXXX (kutsutaan asynkronisen toiminnan lopussa) on kutsuttava poikkeusten uudelleensijoittamiseksi ja epäonnistumisen välttämiseksi
  • Kaappaamalla ja tallentamalla kaikki poikkeusobjektit asynkronisessa menetelmässä, se voidaan uudelleen heittää EndXXX-puhelun aikana
  • Käyttöliittymän säätimet, jotka käynnistävät pitkäaikaiset asynkroniset toiminnot, on poistettava käytöstä, jos niitä tarvitaan vain tätä tarkoitusta varten
  • Asynkroniset menetelmät on toteutettava ymmärtämällä monisäikeisyyttä ja missä ne osoittautuvat tehokkaammiksi kuin synkronisten menetelmien käyttö.