Хабр Курсы для всех
РЕКЛАМА
Большая витрина: от крупнейших школ до частных авторов. Сравнивайте по цене, длительности, формату и выбирайте самый подходящий курс!
sync.Events.RegisterHandler<long, FileProgressInfo, ProgressInfo>("share.file.progress",
x => _loads.ContainsKey(x) ? _loads[x] : null,
(o, h) => o.Progress += h,
(o, h) => o.Progress -= h);
это вынуждает приложение реагировать (to react), отсюда и название «Реактивные» (reactive)
Пишите чистый код с Реактивными Расширениями (Reactive Extensions)