Kursinnehåll
Introduktion till .NET med C#
Introduktion till .NET med C#
Vad är asynkron programmering?
Hittills har den kod vi har skrivit varit helt synkron, vilket innebär att varje uppgift utfördes en efter en, och nästan aldrig kördes några uppgifter samtidigt.
Om vi har kod som följande:
Varje metod kommer att köras efter varandra. Så task2
kommer inte att starta innan task1
är klar. På samma sätt kommer task3
inte att starta innan task2
är klar.
Detta är acceptabelt i grundläggande program, men när vi skapar större applikationer måste vi säkerställa att en uppgift inte blockerar utförandet av en annan.
Till exempel, i webbläsare kan en flik spela musik medan användaren i en annan flik surfar på sociala medier. Denna typ av multitasking är möjlig genom asynkron programmering.
Asynkron programmering är en programmeringsmetod som gör det möjligt att skapa program som kan utföra flera uppgifter samtidigt. Detta bidrar till att göra applikationerna mer effektiva och responsiva genom att utföra flera uppgifter parallellt.
C# tillhandahåller användbara verktyg för asynkron programmering. Vi kommer att titta på hur man använder dem i nästa kapitel.
Fördelar med asynkron programmering:
Genom att köra tidskrävande uppgifter parallellt kan vi effektivt förhindra att huvudprogrammet blockeras. Detta parallella tillvägagångssätt säkerställer att applikationen förblir responsiv, även vid resurs- eller tidskrävande operationer;
Ökad responsivitet och snabbare exekvering ger en smidigare användarupplevelse;
Istället för att köra alla operationer i en enda kö, körs de parallellt. På så sätt får applikationen möjlighet att hantera ett större antal samtidiga operationer, vilket gör den mer skalbar. Till exempel kan du ha en applikation där många klienter (användare) behöver betjänas samtidigt.
Nackdelar med asynkron programmering:
Genom att använda asynkron programmering i din kod kan komplexiteten öka, vilket gör det svårare att hantera och felsöka;
Om du gör en del av din kod asynkron tenderar större delen av koden att också behöva bli asynkron.
Tack för dina kommentarer!