Содержание
- 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)















Память у животных и человека
Силуэт. Выразительные средства графики
Презентация на тему Поле – природное сообщество
Братья наши меньшие. Виртуальная экскурсия
Психология массовых коммуникаций
ФОТОАЛЬБОМ
Анализ проекта
Анализ лексикографического словаря
Разработка логотипа Coffee boom
МОУ «Буторлинская школа» Универсальные Учебные Действия у
Опыт НИТУ «МИСиС» разработки УМКД дисциплины «Безопасность жизнедеятельности» для бакалавров
Деление двузначного числа на однозначное
мозаичное панно «Аквариум»
Smartfony. Иерархия организации
Архитектура вычислительной машины с точки зрения Ч. Бэббиджа
Работа творческой проектной мастерской (рук. Ким Г.Г.):
Ослабление греческихполисов в результате междоусобиц
Нетрадиционные приемы развития связной речи в 1-х – 2-х классах
Термины по политологии (экспресс-курс)
Я гражданин, а это значит... Викторина
курить или не курить ?
Риторика. Ошибки, касающиеся аргументов
Специфика работы экспертной комиссии по профессионально-общественной аккредитации
Экспериментальная работа «Формирование навыка динамического чтения в начальной школе »
Помощники профессора Мышление Мячи 1 2 3 4 5 Мячи 1 2 3 4 5.
Луис Сепульведа
Презентация на тему Интеллектуальная игра "Учитель в школе"
Тепловые насосы