FAGPORTALEN

Asynkron programmering med async/await

Computerspace · FGU · Programmering i C#

⚡ Hvad er asynkron programmering med async/await?

Asynkron programmering lader dit program udføre tidskrævende operationer (netværk, filer, databaser) uden at blokere resten af programmet.

Synkron vs. asynkron:

```csharp

// Synkron – blokerer tråden mens den venter

string data = DownloadSync("https://api.example.com/data");

// Program venter her... brugeren oplever at app "hænger"

// Asynkron – frigiver tråden mens den venter

string data = await DownloadAsync("https://api.example.com/data");

// Program kan lave andet imens – brugeren mærker intet

```

Task og async/await:

```csharp

// async metode returnerer Task eller Task<T>

public async Task<string> HentDataAsync(string url) {

using var client = new HttpClient();

string json = await client.GetStringAsync(url);

return json;

}

// Kald asynkron metode

public async Task Main() {

string data = await HentDataAsync("https://jsonplaceholder.typicode.com/posts/1");

Console.WriteLine(data);

}

```

HttpClient – web-kald:

```csharp

using System.Net.Http.Json;

var client = new HttpClient();

// GET request

var post = await client.GetFromJsonAsync<Post>("https://api.example.com/posts/1");

// POST request

var nytPost = new Post { Title = "Ny", Body = "Indhold" };

var svar = await client.PostAsJsonAsync("https://api.example.com/posts", nytPost);

```

Parallel asynkron kode:

```csharp

// Kør to opgaver parallelt

var opgave1 = HentDataAsync("url1");

var opgave2 = HentDataAsync("url2");

// Vent på begge er færdige

var (data1, data2) = await (opgave1, opgave2);

// Eller brug Task.WhenAll

string[] resultater = await Task.WhenAll(opgave1, opgave2);

```

---

🎓 Læringsmål for Asynkron programmering med async/await

Læringsmål

Sådan kan du arbejde med emnet

⚠️ Typiske fejl at undgå

---

💡 Tips til at komme i gang

Øv dette emne med AI — quizzer, forklaringer og feedback tilpasset dit niveau.

Prøv Fagportalen gratis

🤖 Denne side er skrevet med kunstig intelligens og fagligt gennemgået af Fagportalen, som har det redaktionelle ansvar. Finder du en fejl, så skriv til support@fagportalen.dk.