Tråd 1
Tråd 2
Tråd 3
Trådpool
HTTP
requests
Tråd 1
Tråd 2
Tråd 3
Trådpool
HTTP
requests
headers
..kod...
databas
..kod..
return
"UTAN AWAIT"
Tråd 1
Tråd 2
Tråd 3
Trådpool
HTTP requests
Tråd 1
Tråd 2
Tråd 3
Trådpool
HTTP requests
?
zZzzZz
Tråd 1
Tråd 2
Tråd 3
Trådpool
HTTP
requests
headers
..kod...
databas
"MED AWAIT"
await
Tråd 1
Tråd 2
Tråd 3
Trådpool
HTTP requests
databas
await
Tråd 2
Tråd 3
Trådpool
HTTP
requests
await databas
..kod..
return
"MED AWAIT"
Tråd 1
Tråd 1
Tråd 2
Tråd 3
Trådpool
HTTP requests
Räkna saker i minne och CPU
https://play.kahoot.it/#/?quizId=55549df0-6439-48bd-aad4-d7d76ac1927d
Använd aldrig async void - det kan krasha hela din process.
awaita tasks - om du är intresserad av vad som faktiskt händer i anropet. (annars lever deras data till GC)
Använd cancellation Token - om du vill kunna avbryta arbetet utan att starta om processen
Starta in för många tasks samtidigt - du kan då ta slut på resurser, t.ex. minne/connectionpool till db osv
github.com/abergs/async-workshop