Реактивные расширения для разработчиков.NET

Я нашел некоторую информацию об этом, но у меня есть несколько путаницы по этому поводу. Поэтому, когда нам нужно использовать этот RX.NET.

Что важно использовать эти предметы? Когда мне нужно это использовать?

1 ответ

Решение

Как и в случае с любым набором инструментов, он может определять способ решения проблем. Учитывая молоток, все ваши проблемы могут стать гвоздями. То же самое и с Rx.NET. Это дает вам новый подход. Решить, использовать ли этот подход для решения конкретной проблемы, зависит от вас, и, как и для любого инструмента или технологии, есть свои плюсы и минусы. Вам нужно будет учиться и набираться опыта, чтобы составить такие сложные суждения для себя.

Для начала, Rx.NET позволяет вам развивать подход программирования "реактивно". Это сродни функциональному программированию в том смысле, что вы объявляете поведение составленным из базового поведения. Rx.NET позволяет вам определять функции над потоками, чтобы давать новые потоки. Этот мощный метод может быть применен практически к любой проблеме, которую вы можете себе представить.

Например, программа, использующая Linq и Rx.NET для рисования движений мыши в виде точек на экране внутри ограничительной рамки, хотела бы что-то вроде:

mouseMovements.Where(box.Contains(m)).Subscribe(DrawPoint)

где mouseMovements будет вашим событием мыши в качестве наблюдаемого

Вы могли бы объявить

myPointsInBox = mouseMovements.Where(box.Contains(m))

как свои собственные наблюдаемые и имеют несколько подписчиков:

myPointsInBox.Subscribe(DrawPoint)
myPointsInBox.Subscribe(ConnectWithLines)
myPointsInBox.Subscribe(UpdatePointCounter)

вы можете создавать потоки из потоков

var everyThousandthPoint= myPointsInBox.Buffer(….).Select(…)

а затем делать вещи с ними

   everyThousandthPoint.Subscribe(FlashPointCounter)

Вы поняли идею.

Другие вопросы по тегам