Содержание
- 2. О Вашем инструкторе Сергей Тепляков Visual C# MVP, RSDN Team member [email protected] SergeyTeplyakov.blogspot.com 1-
- 3. Цели курса… Философию библиотеки Reactive Extensions Основы библиотеки TPL Использование библиотеки TPL Новые возможности C# 5
- 4. Необходимая подготовка Быть знакомы с основами языка C# и платформы .Net Обладать базовыми знаниями многопоточности Быть
- 5. Roadmap Введение в реактивные расширения Дуализм интерфейсов Основы Rx Observable sequences Events и Observables Observables и
- 6. Интерактивная и реактивная модель
- 7. Реактивное программирование Парадигма программирования, ориентированная на потоки данных и распространение изменений. Это означает, что должна существовать
- 8. Реактивная модель "Принцип Голливуда" – "Не звоните нам, мы сами вам позвоним" (Hollywood Principle - Don't
- 9. Rx - это 1. набор классов, представляющих собой асинхронный поток данных 2. набор операторов, предназначенных для
- 10. Зачем все это нужно? Social media Stock tickers RSS feeds GPS Server management UI events
- 11. Интерфейс IEnumerable Pull-based последовательности представлены интерфейсом IEnumerable. Это - коллекции в памяти (списки, вектора и т.д.)
- 12. Интерфейс IEnumerable public interface IEnumerable { IEnumerator GetEnumerator(); } public interface IEnumerator : IDisposable { bool
- 13. Упрощение интерфейса IEnumerator public interface IEnumerator : IDisposable { (T | void | Exception) GetNext(); }
- 14. Интерфейс IObservable public interface IObservable { IDisposable Subscribe(IObserver observer); } public interface IObserver { void OnNext(T
- 15. Pull vs Push
- 16. Pull vs Push
- 17. Простые последовательности Observable.Empty (); Observable.Return(42); Observable.Throw (ex); Observable.Never (); OnComplete OnNext OnError new int[] {}; new
- 18. Методы Range Observable.Range(0, 3); OnNext(0) OnNext(1) OnNext(2) Enumerable.Range(0, 3); yield 0 yield 1 yield 2
- 19. Циклы for var xs = Observable.Generate( 0, x => x x + 1, x => x);
- 20. Контракт «реактивных» последовательностей Grammar: OnNext* [OnCompleted | OnError] Методы наблюдателя вызываются последовательно
- 21. Упрощение работы с интерфейсом IObserver var xs = Observable.Range(0, 10); 1. Только OnNext: xs.Subscribe(/*OnNext(int)*/x => Console.WriteLine(x));
- 22. Demo
- 23. События в .NET Объявление event Action E; Публикация E(42); Подписка E += x => Console.WriteLine(x);
- 24. Rx Объявление ISubject S = new Subject (); Публикация S.OnNext(42); Подписка S.Subscribe(x => Console.WriteLine(x));
- 25. class Program { event Action E; static void Main() { var p = new Program(); p.E
- 26. Отписка от событий Events static event Action E; //E += x => Console.WriteLine(x); Action action =
- 27. «События» первого класса Объект называют «объектом первого класса» когда он: может быть сохранен в переменной может
- 28. «События» первого класса // Сохранение в переменной IObservable textChanged = …; // Передача в качестве параметра
- 29. Возможности наблюдаемых последовательностей IObservable mouseMoves = from e in Observable.FromEventPattern (frm, "MouseMove") select e.EventArgs.Location; var filtered
- 30. Demo
- 31. Асинхронные операции Classical Async Pattern FileStream fs = File.OpenRead("data.txt"); byte[] buffer = new byte[1024]; fs.BeginRead(buffer, 0,
- 32. FromAsyncPattern static int LongRunningFunc(string s) { Thread.Sleep(TimeSpan.FromSeconds(5)); return s.Length; } Func longRunningFunc = LongRunningFunc; Func >
- 33. Tasks vs FromAsyncPattern Задачи (Tasks) – это унифицированный способ представления Single value asynchrony в .Net Framework
- 34. Task -> ToObservable static class FuncExtensions { internal static Task ToTask(this Func func, string s) {
- 35. Чем Rx не является Rx не заменяет существующей «асинхронности»: .NET все еще незаменимы Асинхронные методы все
- 36. Demo
- 37. Управление многопоточность Управление многопоточностью осуществляется с помощью интерфейса IScheduler var xs = Observable.Range(0, 10, Scheduler.ThreadPool); xs.Subscribe(x
- 38. Синхронизация Обновление пользовательского интерфейса Label lbl = new Label(); Form frm = new Form() {Controls =
- 39. Demo
- 40. Что мы изучили? Введение в реактивные расширения Дуализм интерфейсов Основы Rx Observable sequences Events и Observables
- 41. Experimental vs Stable Две версии библиотеки Reactive Extensions: Stable Experimental Interactive Extensions
- 42. Где взять? NuGet Web - http://msdn.microsoft.com/en-us/data/gg577610 Can’t find? Use google☺
- 43. Дополнительные ссылки The Reactive Extensions (Rx)... (Data Developer Center) - http://msdn.microsoft.com/en-us/data/gg577609 Reactive Extensions (MSDN) - http://msdn.microsoft.com/en-us/library/hh242985(v=vs.103).aspx
- 44. Roslyn CTP is awailable! http://msdn.microsoft.com/ru-ru/roslyn
- 45. Вопросы?
- 46. Горячие и холодные последовательности
- 48. Скачать презентацию


















![Контракт «реактивных» последовательностей Grammar: OnNext* [OnCompleted | OnError] Методы наблюдателя вызываются последовательно](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/389916/slide-19.jpg)










![Асинхронные операции Classical Async Pattern FileStream fs = File.OpenRead("data.txt"); byte[] buffer =](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/389916/slide-30.jpg)















Установки для подъема высокотемпературной жидкости, геотермальной энергетики
Постановка задачи
Отчет команды об участии в онлайн-конкурсе кулинарного искусства Мастер Шеф
Россия на карте мира
НЕСПЕЦИФИЧЕСКИЕ И СПЕЦИФИЧЕСКИЕ ВТОРИЧНЫЕ КАРДИОМИОПАТИИ
Внешняя среда ПАО Калориферный завод
Учебный план профильного обучения Методические аспекты составления в условиях перехода
Оптимизация структуры активов и пассивов предпринимательской структуры в условиях неопределенности
Корпоративное мероприятие в клубном формате
Диагностика. Психологическое сопровождение процесса реабилитации
Презентация на тему Как христианство пришло на Русь (4 класс)
Презентация на тему Лекарства дома
Вечный двигатель 10 класс
Презентация на тему МЧС России
Строительство хозяйственно-бытовой канализации. Разработка проектно-сметной документации
Презентация на тему Рыночные отношения в здравоохранении
Лекция 1
ДЕНЬ НАРОДНОГО ЕДИНСТВА
Презентация на тему Антуан де Монкретьен
Владимиро - Суздальская Русь
ГОУ СПО «Балаковское медицинское училище»Название исследования (например: Я и моё имя)Авторы: ФИО, группа, отделениеРуково
Фиксированные ударения в языках
Галуа
Муртадха - презентация
Dream Team - онлайн платформа в IT сфере
Презентация на тему Петр Павлович Ершов
Система профориентации и основные её направления
Маски для волос. Выбираем расческу