asinhronnoe-programmirovanie-C#-5.0

Для разработчиков на C#.

Алекс Дэвис «Асинхронное программирование в C# 5.0.» ДМК Пресс, 2013 год, 120 стр. (1,54 мб. pdf)

Если вы пишете одно из приложений, требующих асинхронного программирования, то это краткое практическое руководство покажет, как функция async в C# 5.0 может сделать этот процесс намного проще. Вместе с доступным и понятным введением в асинхронное программирование, вы получите всесторонний взгляд на то, как асинхронная функция работает и почему вы могли бы использовать её в ваших приложениях.

Изучая асинхронное программирование вы сможете открыть новые возможности производительности в ASP.NET и то, как async и winrt работают вместе в Windows 8. Книга для программистов как опытных, так и начинающих, но уже знакомых с C#,   она содержит примеры кода которые можете использовать в своих собственных проектах. ISBN 978-5-94074-886-1
ISBN 978-1-449-33716-2 (англ.)

Оглавление книги

Глава 1. Введение 13
Асинхронное программирование 13
Чем так хорош асинхронный код? 14
Что такое async? 15
Что делает async? 15
Async не решает все проблемы 17

Глава 2. Зачем делать программу асинхронной 18
Приложения с графическим интерфейсом пользователя для настольных компьютеров 18
Аналогия с кафе 19
Серверный код веб-приложения 20
Еще одна аналогия: кухня в ресторане 21
Silverlight, Windows Phone и Windows 8 22
Параллельный код 23
Пример 24

Глава 3. Написание асинхронного кода вручную 26
О некоторых асинхронных паттернах в .NET 26
Простейший асинхронный паттерн 28
Введение в класс Task 29
Чем плоха реализация асинхронности вручную? 30
Переработка примера с использованием написанного вручную асинхронного кода 31

Глава 4. Написание асинхронных методов 33
Преобразование программы скачивания значков к виду, использующему async 33
Task и await 34
Тип значения, возвращаемого асинхронным методом 36
Async, сигнатуры методов и интерфейсы 37
Предложение return в асинхронных методах 38
Асинхронные методы «заразны» 39
Асинхронные анонимные делегаты и лямбда-выражения 40

Глава 5. Что в действительности делает await 41
Приостановка и возобновление метода 41
Состояние метода 42
Контекст 43
Когда нельзя использовать await 44
Блоки catch и finally 44
Блоки lock 45
Выражения LINQ-запросов 46
Небезопасный код 47
Запоминание исключений 47
Асинхронные методы до поры исполняются синхронно 48

Глава 6. Паттерн TAP 50
Что специфицировано в TAP? 50
Использование Task для операций, требующих большого объема вычислений 52
Создание задачи-марионетки 53
Взаимодействие с прежними асинхронными паттернами 55
Холодные и горячие задачи 56
Предварительная работа 56

Глава 7. Вспомогательные средства для асинхронного кода 58
Задержка на указанное время 58
Ожидание завершения нескольких задач 59
Ожидание завершения любой задачи из нескольких 61
Создание собственных комбинаторов 62
Отмена асинхронных операций 64
Информирование о ходе выполнения асинхронной операции 65

Глава 8. В каком потоке исполняется мой код? 67
До первого await 67
Во время асинхронной операции 68
Подробнее о классе SynchronizationContext 69
await и SynchronizationContext 69
Жизненный цикл асинхронной операции 70
Когда не следует использовать SynchronizationContext 73
Взаимодействие с синхронным кодом 74

Глава 9. Исключения в асинхронном коде 76
Исключения в async-методах, возвращающих Task 76
Незамеченные исключения 78
Исключения в методах типа async void 79
Выстрелил и забыл 79
AggregateException и WhenAll 80
Синхронное возбуждение исключений 81
Блок finally в async-методах 82

Глава 10. Организация параллелизма с помощью механизма async 83
await и блокировки 83
Акторы 85
Использование акторов в C# 86
Библиотека Task Parallel Library Dataflow 87

Глава 11. Автономное тестирование асинхронного кода 90
Проблема автономного тестирования в асинхронном окружении 90
Написание работающих асинхронных тестов вручную 91
Поддержка со стороны каркаса автономного тестирования 91

Глава 12. Механизм async в приложениях ASP.NET 93
Преимущества асинхронного веб-серверного кода 93
Использование async в ASP.NET MVC 4 94
Использование async в предыдущих версиях ASP.NET MVC 94
Использование async в ASP.NET Web Forms 95

Глава 13. Механизм async в приложениях WinRT 97
Что такое WinRT? 97
Интерфейсы IAsyncAction и IAsyncOperation<T> 98
Отмена 99
Информирование о ходе выполнения 99
Реализация асинхронных методов в компоненте WinRT 100

Глава 14. Подробно о преобразовании асинхронного кода, осуществляемом компилятором 102
Метод-заглушка 102
Структура конечного автомата 103
Метод MoveNext 105
Наш код 106
Преобразование предложений return в код завершения 106
Переход в нужное место метода 106
Приостановка метода в месте встречи await 107
Возобновление после await 107
Синхронное завершение 107
Перехват исключений 108
Более сложный код 108
Разработка типов, допускающих ожидание 109
Взаимодействие с отладчиком 110

Глава 15. Производительность асинхронного кода 112
Измерение накладных расходов механизма async 112
Async и блокирующая длительная операция 113
Оптимизация асинхронного кода для длительной операции 116
Async-методы и написанный вручную асинхронный код 116
Async и блокирование без длительной операции 117
Оптимизация асинхронного кода без длительной операции 118
Резюме 119

Скачать книгу бесплатно1,54 мб. pdf

 

Alex Davies Async in C# 5.0

Async in C# 5.0If you’re writing one of several applications that call for asynchronous programming, this concise hands-on guide shows you how the async feature in C# 5.0 can make the process much simpler. Along with a clear introduction to asynchronous programming, you get an in-depth look at how the async feature works and why you might want to use it in your application.

Written for experienced C# programmers—yet approachable for beginners—this book is packed with code examples that you can extend for your own projects.

Write your own asynchronous code, and learn how async saves you from this messy choreDiscover new performance possibilities in ASP.NET web server codeExplore how async and WinRT work together in Windows 8 applicationsLearn the importance of the await keyword in async methodsUnderstand which .NET thread is running your code—and at what points in the programUse the Task-based Asynchronous Pattern (TAP) to write asynchronous APIs in .NETTake advantage of parallel computing in modern machinesMeasure async code performance by comparing it with alternatives
ISBN-10: 1449337163
ISBN-13: 9781449337162

Скачать книгу бесплатно (EN)936 kb. pdf
Асинхронное программирование в C# 5. Видео

Похожая литература