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















Модульная структурасистемы ITAS
Инвестор, новый уровень
Разработка и изготовление ансамбля коллекции женской одежды Butterfly
Илья Муромец и Соловей-разбойник
Времена года. Лабораторная работа №5
«СОРОК МГНОВЕНИЙ НАЕДИНЕ С КОРНЕМ СТЕПЕНИ n»
«Регион 74 в составе Российской Федерации».
Правовая информация для несовершеннолетних и их родителей
Дальневосточная пожарно-спасательная академия
Воспитательный потенциал современного образования:вызов родительской общественности
СТРЕССОВЫЕ СИТУАЦИИ НА РАБОЧЕМ МЕСТЕ
Винсент Ван Гог. Подсолнухи
Аккумуляторная мотопила stihl gta 26
Китай
Об использовании новых организационных форм медицинского обеспечения и оценки результатов новой системы оплаты труда
Татарское декоративно-прикладное искусство
Буквы Ч,ч, обозначающие звук [ч’]
Разрезы в аксонометрических проекциях
Чему учил китайский мудрец Конфуций
Порядок обращения за страховой пенсией по случаю потери кормильца
Презентация на тему Шолохов «Донские рассказы»
Сгорание топлива. Октановое число
Налоговый потенциал
Влияние плавания на здоровье человека
Топочные устройства ПК
Иллюстрационный материал к реферату на тему: Эмпирическая школа управления
Can you swim?
МОДЕЛИ УПРАВЛЕНИЯ ЗАПАСАМИ МОДЕЛИ УПРАВЛЕНИЯ ЗАПАСАМИ