Asinhroni poziv

Autor: Lewis Jackson
Datum Stvaranja: 8 Svibanj 2021
Datum Ažuriranja: 25 Lipanj 2024
Anonim
Light Your World (with Hue Bulbs) by Dan Bradley
Video: Light Your World (with Hue Bulbs) by Dan Bradley

Sadržaj

Definicija - Što znači poziv asinkronog metoda?

Poziv asinhrone metode je metoda koja se koristi u .NET programiranju koja se pozivaocu vraća neposredno prije dovršetka njegove obrade i bez blokiranja pozivne niti.

Kada aplikacija nazove asinhronu metodu, može se istovremeno izvršiti zajedno s izvršenjem asinhrone metode koja izvršava svoj zadatak. Asinhrona metoda radi u niti odvojeno od glavne niti aplikacije. Rezultati obrade dohvaćeni su putem drugog poziva na drugoj niti.

Asinkrone metode pomažu u optimizaciji izvođenja resursa što rezultira skalabilnom primjenom. Oni se koriste za izvršavanje vremenski zahtjevnih zadataka poput otvaranja velikih datoteka, povezivanja s udaljenim računalima, upita baze podataka, pozivanja web usluga i ASP.NET web obrazaca.

Poziv asinhrone metode može se također nazivati ​​i pozivom asinhrone metode (AMI).


Uvod u Microsoft Azure i Microsoft Cloud | Kroz ovaj vodič naučit ćete o čemu se radi računalstvo u oblaku i kako vam Microsoft Azure može pomoći da preselite i pokrenete svoje poslovanje iz oblaka.

Tehopedia objašnjava poziv asinkronim metodama

Asinhrona metoda razlikuje se od sinkrone metode na način na koji se vraća iz poziva. Dok se poziv asinhrone metode odmah vraća, omogućujući pozivajućem programu da obavlja i druge operacije, pozivi sinkrone metode čekaju da se metoda dovrši prije nego što nastavite s protokom programa.

.NET Framework ima ugrađenu asinhronu infrastrukturu tako da se bilo koja metoda može asinkrono pozvati bez promjene njezinog koda.

.NET Framework pruža dva dizajnerska obrasca za implementaciju asinhrone metode, a to su oni koji koriste asinhrone delegate (IASyncResult objekti) i događaje. Uzorak asinkronih delegata je složeniji i pruža fleksibilnost, što ga čini dobro prilagođenim različitim složenim modelima programiranja. Model utemeljen na događajima je jednostavan i trebao bi se koristiti u većini slučajeva.

U obrascu asinkronih delegata, delegatni objekt koristi dvije metode: BeginInvoke i EndInvoke. BeginInvoke ima popis parametara koji su slični njegovoj zamotanoj funkciji, zajedno s dva dodatna neobavezna parametra; vraća objekt IAsyncResult. EndInvoke vraća dva parametra (tip out i ref) zajedno s objektom IAsyncResult. BeginInvoke koristi se za pokretanje asinkronog poziva, dok se EndInvoke koristi za dobivanje rezultata asinkronog poziva.

Asinkroni obrasci temeljeni na događajima koriste klasu koja ima jednu ili više metoda, nazvanu MethodNameAsync, a koje imaju odgovarajuće sinkrone verzije koje se izvode na trenutnoj niti. Uzorci temeljeni na događajima mogu također imati metod MethodNameCompleted i MethodNameAsyncCancel. Ovaj uzorak omogućava klasi da komunicira s nesretnim asinhronim operacijama pomoću modela delegatskog događaja.

Slijedi nekoliko savjeta koji se odnose na asinhrone metode:


  • Za visoku konkurentnost potrebno je izbjegavati asinhrone metode
  • Potrebno je biti oprezan prilikom prolaska referenci o zajedničkim objektima
  • EndXXX (pozvan na kraju asinhrone operacije) mora biti pozvan da ponovo izbaci iznimke i izbjegne neuspjeh
  • Hvatanjem i spremanjem svih objekata iznimke u asinkronoj metodi, može se ponovno ukloniti tijekom poziva EndXXX
  • Kontrole u korisničkom sučelju koje pokreću dugotrajne asinhrone operacije moraju biti onemogućene ako su samo potrebne u tu svrhu
  • Asinhrone metode moraju se primijeniti uz razumijevanje višeslojnog navoja i tamo gdje se dokazuju učinkovitijima od upotrebe sinkronih metoda.