ASYNC .NET
async/await
❤
Task<T>
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
Jättebra för
Databas, HTTP, Filsystem, TCP osv
Inte Jättebra för
Räkna saker i minne och CPU
KAHOOT TIME
https://play.kahoot.it/#/?quizId=55549df0-6439-48bd-aad4-d7d76ac1927d
KOD DEMO
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
Allt detta i REPO:
github.com/abergs/async-workshop
ASYNC .NET
By abergs
ASYNC .NET
- 267