Async/await и все, что вы боялись спросить

Содержание

Слайд 2

О чем буду разглагольствовать

Обосную, зачем этот доклад нужен
Немного основ
Копнем вглубь StateMachine
Копнём вглубь

О чем буду разглагольствовать Обосную, зачем этот доклад нужен Немного основ Копнем
контекстов и всего, что с ними связано
Поумилияемся .NET Core
Расскажу пару примеров из жизни
Поспорим про паттерны и подходы

Слайд 3

Зачем нам нужна асинхронность?

Зачем нам нужна асинхронность?

Слайд 4

Зачем это нужно на сервере?

https://docs.microsoft.com/en-us/dotnet/standard/async-in-depth?

Зачем это нужно на сервере? https://docs.microsoft.com/en-us/dotnet/standard/async-in-depth?

Слайд 5

Немногие основы

Асинхронное программирование – стиль программирование, в котором основной поток выполнения не

Немногие основы Асинхронное программирование – стиль программирование, в котором основной поток выполнения
блокируется. А выполнение кода превращается из последовательного в поток обратных вызовов (call back).

Как было?

Asynchronous Programming Model (BeginOperationName/EndOperationName)
Event-based Asynchronous Programming (OperationNameAsync()/OperationNameCompleted)

Task-base Asynchronous Pattern (TAP) (async/await и Task/Task)

Как стало?

Слайд 6

Поехали ☺

Поехали ☺

Слайд 7

Как работает (синхронное)


Поток заблокировался

Как работает (синхронное) Поток заблокировался

Слайд 8

Как работает (aсинхронное)


Возвращает управление

Как работает (aсинхронное) Возвращает управление

Слайд 9

Поехали?

Поехали?

Слайд 10

А что с Core?

А что с Core?

Слайд 11

Вниз, к центру стэйт машины

Вниз, к центру стэйт машины

Слайд 12

Вниз, к центру стэйт машины

Вниз, к центру стэйт машины

Слайд 14

Совсем упростим

Совсем упростим

Слайд 15

SynchronizationContext – это важно

SynchronizationContext – это важно

Слайд 16

Веселая задачка

Веселая задачка

Слайд 18

Нам нужно на следующий уровень (Демо)

Нам нужно на следующий уровень (Демо)

Слайд 20

ExecutionContext – это тоже важно

ExecutionContext – это тоже важно

Слайд 21

ExecutionContext

ExecutionContext

Слайд 22

ExecutionContext

https://weblogs.asp.net/dixin/understanding-c-sharp-async-await-3-runtime-context

ExecutionContext https://weblogs.asp.net/dixin/understanding-c-sharp-async-await-3-runtime-context

Слайд 23

SynchronizationContext

SynchronizationContext

Слайд 24

SynchronizationContext

SynchronizationContext

Слайд 25

Веселая задачка №2

Веселая задачка №2

Слайд 26

AspNetSynchronizationContext

AspNetSynchronizationContext

Слайд 27

Мы же в 2к17

Мы же в 2к17

Слайд 28

Упс…

Упс…

Слайд 30

Немного опыта

Немного опыта

Слайд 31

Похоливарим

Не стоит оборачивать синхронный код в асинхронный
Не стоит оборачивать асинхронный код в

Похоливарим Не стоит оборачивать синхронный код в асинхронный Не стоит оборачивать асинхронный
синхронный

https://blogs.msdn.microsoft.com/pfxteam/2012/04/13/should-i-expose-synchronous-wrappers-for-asynchronous-methods/
https://blogs.msdn.microsoft.com/pfxteam/2012/03/24/should-i-expose-asynchronous-wrappers-for-synchronous-methods/
https://docs.microsoft.com/en-us/dotnet/csharp/async
?

Слайд 32

Что почитать?(книги)

Что почитать?(книги)

Слайд 33

Что еще?

https://weblogs.asp.net/dixin/understanding-c-sharp-async-await-1-compilation - кратко и обо всем
https://blog.stephencleary.com/2013/10/taskrun-etiquette-and-proper-usage.html – (Stephen Cleary)
https://blogs.msdn.microsoft.com/pfxteam/ - команда

Что еще? https://weblogs.asp.net/dixin/understanding-c-sharp-async-await-1-compilation - кратко и обо всем https://blog.stephencleary.com/2013/10/taskrun-etiquette-and-proper-usage.html – (Stephen Cleary)
отвечающая за async/await
https://codeblog.jonskeet.uk/2011/05/08/eduasync-part-1-introduction/ - Jon Skeet
http://vegetarianprogrammer.blogspot.ru/2012/12/understanding-synchronizationcontext-in.html - хорошая статья про контексты
https://msdn.microsoft.com/en-us/magazine/gg598924.aspx - еще статья про контекст
https://blogs.msdn.microsoft.com/pfxteam/2012/06/15/executioncontext-vs-synchronizationcontext/ - ExecutionContext vs SynchronizationContext
https://blogs.msdn.microsoft.com/pfxteam/2012/03/24/should-i-expose-asynchronous-wrappers-for-synchronous-methods/ - нужно ли оборачивать синхронное в асинхронное
https://blogs.msdn.microsoft.com/pfxteam/2012/04/13/should-i-expose-synchronous-wrappers-for-asynchronous-methods/ - нужно ли оборачивать синхронное в асинхронное

Статьи

Слайд 34

Что еще?

Видео

https://www.youtube.com/watch?v=lh8cT6qI-nA – Андрей Часовских — Async/await: собираем грабли
https://channel9.msdn.com/Events/aspConf/aspConf/Async-in-ASP-NET - async в

Что еще? Видео https://www.youtube.com/watch?v=lh8cT6qI-nA – Андрей Часовских — Async/await: собираем грабли https://channel9.msdn.com/Events/aspConf/aspConf/Async-in-ASP-NET
ASP.NET
https://channel9.msdn.com/Events/BUILD/BUILD2011/TOOL-829T - The zen of async: Best practices for best performance
https://channel9.msdn.com/Series/Three-Essential-Tips-for-Async - Six Essential Tips for Async
https://channel9.msdn.com/Series/Three-Essential-Tips-for-Async - Tip 4: Async Library Methods Shouldn't Lie
Имя файла: Async/await-и-все,-что-вы-боялись-спросить.pptx
Количество просмотров: 51
Количество скачиваний: 0