Apel la metodă asincronă

Autor: Lewis Jackson
Data Creației: 8 Mai 2021
Data Actualizării: 25 Iunie 2024
Anonim
Asynchronous Method Call
Video: Asynchronous Method Call

Conţinut

Definiție - Ce înseamnă apelul cu metodă asincronă?

Un apel de metodă asincronă este o metodă utilizată în programarea .NET care revine apelantului imediat înainte de finalizarea procesării sale și fără blocarea firului de apelare.

Când o aplicație apelează la o metodă asincronă, aceasta poate executa simultan împreună cu executarea metodei asincrone care își îndeplinește sarcina. O metodă asincronă rulează într-un fir separat de firul principal al aplicației. Rezultatele procesării sunt obținute printr-un alt apel pe un alt thread.

Metodele asincrone ajută la optimizarea execuției resurselor care rezultă în aplicarea scalabilă. Acestea sunt utilizate pentru a executa sarcini care consumă timp, cum ar fi deschiderea de fișiere mari, conectarea la computere la distanță, interogarea unei baze de date, apelarea serviciilor Web și a formularelor web ASP.NET.

Apelarea la metoda asincronă mai poate fi denumită invocare la metodă asincronă (AMI).


O introducere în Microsoft Azure și Microsoft Cloud | În acest ghid, veți afla despre ce este vorba despre cloud computing și despre cum Microsoft Azure vă poate ajuta să migrați și să conduceți afacerea din cloud.

Techopedia explică apelul la metodă asincronă

Metoda asincronă diferă de metoda sincronă în modul în care se întoarce de la apel. În timp ce un apel cu metodă asincronă se întoarce imediat, permițând programului de apelare să efectueze alte operațiuni, apelurile cu metodă sincronă așteaptă finalizarea metodei înainte de a continua cu fluxul de program.

Cadrul .NET are o infrastructură asincronă încorporată astfel încât orice metodă poate fi invocată asincron fără a-i modifica codul.

Cadrul .NET oferă două modele de proiectare pentru implementarea metodei asincrone, care sunt cele care utilizează delegați asincroni (obiecte IASyncResult) și evenimente. Modelul delegaților asincroni este mai complex și oferă flexibilitate, ceea ce îl face bine pentru diverse modele de programare complexe. Modelul bazat pe evenimente este simplu și ar trebui utilizat în majoritatea cazurilor.

În modelul de delegați asincroni, un obiect delegat folosește două metode: BeginInvoke și EndInvoke. BeginInvoke are o listă de parametri, care sunt similare cu funcția învelită, împreună cu doi parametri opționali suplimentari; returnează obiectul IAsyncResult. EndInvoke returnează doi parametri (tip out și ref) împreună cu obiectul IAsyncResult. BeginInvoke este utilizat pentru inițierea apelului asincron, în timp ce EndInvoke este utilizat pentru a prelua rezultatele apelului asincron.

Tiparele asincrone bazate pe evenimente folosesc o clasă care are una sau mai multe metode, numită MethodNameAsync, care au versiuni sincrone corespunzătoare care se execută pe firul curent. Modelele bazate pe evenimente pot avea, de asemenea, un eveniment MethodNameCompleted și o metodă MethodNameAsyncCancel. Acest model permite clasei să comunice cu operațiuni asincrone în așteptare folosind modelul de eveniment delegat.

Următoarele sunt câteva sfaturi legate de metodele asincrone:


  • Pentru o concurență ridicată, trebuie evitate metodele asincrone
  • Trebuie să aveți grijă în timp ce treceți referințe la obiecte partajate
  • EndXXX (numit la sfârșitul unei operațiuni asincrone) trebuie să fie apelat la regăsirea excepțiilor și să evite eșecul
  • Prin prinderea și salvarea tuturor obiectelor de excepție în metoda asincronă, acesta poate fi refăcut în timpul apelului EndXXX
  • Controalele din interfața utilizator care inițiază operațiuni asincrone pe termen lung trebuie să fie dezactivate dacă sunt necesare numai în acest scop
  • Metodele asincrone trebuie să fie puse în aplicare cu o înțelegere a multithreading și unde se dovedesc a fi mai eficiente decât utilizarea metodelor sincrone.