Asynkron metodsamtal

Författare: Lewis Jackson
Skapelsedatum: 8 Maj 2021
Uppdatera Datum: 25 Juni 2024
Anonim
Wind turbine generators, HOW DO THEY WORK?
Video: Wind turbine generators, HOW DO THEY WORK?

Innehåll

Definition - Vad betyder Asynchronous Method Call?

Ett asynkron metodsamtal är en metod som används i .NET-programmering som återgår till den som ringer omedelbart innan behandlingen avslutas och utan att blockera samtalstråden.

När en applikation kallar en asynkron metod kan den samtidigt köras tillsammans med exekveringen av den asynkrona metoden som utför sin uppgift. En asynkron metod körs i en tråd separat från huvudapplikationstråden. Behandlingsresultaten hämtas genom ett nytt samtal på en annan tråd.

Asynkrona metoder hjälper till att optimera körningen av resurser vilket resulterar i skalbar applikation. Dessa används för att utföra tidskrävande uppgifter som att öppna stora filer, ansluta till fjärrdatorer, fråga en databas, ringa webbtjänster och ASP.NET webbformulär.

Asynkron metodsamtal kan också kallas AMI (asynchronous method invocation).


En introduktion till Microsoft Azure och Microsoft Cloud | I hela denna guide kommer du att lära dig vad cloud computing handlar om och hur Microsoft Azure kan hjälpa dig att migrera och driva ditt företag från molnet.

Techopedia förklarar Asynchronous Method Call

Asynkron metod skiljer sig från synkron metod på det sätt som den återgår från samtalet. Medan ett asynkron metodsamtal återgår omedelbart, vilket gör att det ringande programmet kan utföra andra operationer, väntar synkronmetodsamtal på att metoden ska slutföras innan man fortsätter med programflödet.

.NET-ramverket har inbyggd asynkron infrastruktur så att alla metoder kan anropas asynkront utan att ändra dess kod.

.NET-ramverket ger två designmönster för att implementera den asynkrona metoden, som är de som använder asynkrona delegater (IASyncResult-objekt) och händelser. Asynkrona delegatmönster är mer komplexa och ger flexibilitet, vilket gör det väl lämpat för olika komplexa programmeringsmodeller. Den händelsebaserade modellen är enkel och bör användas i de flesta fall.

I det asynkrona delegatmönstret använder ett delegatobjekt två metoder: BeginInvoke och EndInvoke. BeginInvoke har en lista över parametrar, som liknar dess lindade funktion, tillsammans med ytterligare två tillvalsparametrar; det returnerar IAsyncResult-objektet. EndInvoke returnerar två parametrar (ut- och ref-typ) tillsammans med IAsyncResult-objektet. BeginInvoke används för att initiera det asynkrona samtalet, medan EndInvoke används för att hämta resultaten från det asynkrona samtalet.

Händelsebaserade asynkronmönster använder en klass som har en eller flera metoder, benämnd MethodNameAsync, som har motsvarande synkrona versioner som körs på den aktuella tråden. Händelsebaserade mönster kan också ha en metodnamnKompletterad händelse och metodnamnAsyncKansellmetod. Detta mönster gör det möjligt för klassen att kommunicera med pågående asynkrona operationer med hjälp av delegathändelsemodellen.

Följande är några tips relaterade till asynkrona metoder:


  • För hög samtidighet måste asynkrona metoder undvikas
  • Man måste vara försiktig när du delar referenser till delade objekt
  • EndXXX (kallas i slutet av en asynkron operation) måste anropas för att återkasta undantag och undvika fel
  • Genom att fånga och spara alla undantagsobjekt på asynkron metod, kan det återtröms under EndXXX-samtalet
  • Kontroller i användargränssnittet som initierar långa löpande asynkrona operationer måste inaktiveras om de bara behövs för det ändamålet
  • Asynkrona metoder måste implementeras med förståelse för multitrådning och där de visar sig vara mer effektiva än att använda synkrona metoder.