Základ
public async Task<Kurz> NajdiAsync(int id) {
return await _db.Kurzy.FindAsync(id);
}
await neblokuje vlákno — uvolní ho zpět do poolu.
Nikdy .Result a .Wait()
V ASP.NET Core způsobují deadlocky a zabijí throughput.
ConfigureAwait(false) v knihovnách
V knihovnách používejte, v aplikačním kódu není potřeba.
Paralelismus
var t1 = KurzyAsync();
var t2 = LektoriAsync();
await Task.WhenAll(t1, t2);
CancellationToken
Vždy přijímejte a předávejte dál — uživatel zavře stránku, request se zruší.
Podrobně v našem intenzivním školení C# / .NET.