Book Image

Reactive Programming for .NET Developers

Book Image

Reactive Programming for .NET Developers

Overview of this book

Reactive programming is an innovative programming paradigm focused on time-based problem solving. It makes your programs better-performing, easier to scale, and more reliable. Want to create fast-running applications to handle complex logics and huge datasets for financial and big-data challenges? Then you have picked up the right book! Starting with the principles of reactive programming and unveiling the power of the pull-programming world, this book is your one-stop solution to get a deep practical understanding of reactive programming techniques. You will gradually learn all about reactive extensions, programming, testing, and debugging observable sequence, and integrating events from CLR data-at-rest or events. Finally, you will dive into advanced techniques such as manipulating time in data-flow, customizing operators and providers, and exploring functional reactive programming. By the end of the book, you'll know how to apply reactive programming to solve complex problems and build efficient programs with reactive user interfaces.
Table of Contents (15 chapters)
Reactive Programming for .NET Developers
Credits
About the Authors
About the Reviewer
www.PacktPub.com
Preface

Threading integration


With Rx, we have the ability to let our messages flow in specific threads to achieve high concurrency computation or we can define to use the main thread to comply with the UI controls requirements. This kind of thread integration is discussed in the Scheduling section.

Differently, in this section, we will cover the ability to flow the result of an asynchronous operation within a sequence.

Sourcing from a Task

A Task process is an asynchronous operation wrapped into an object that gives us the ability to create task hierarchy, task cancellation, and so on.

Often, in our applications, we use tasks to handle CPU-bound or IO-bound operations. When we're dealing with reactive applications, the best way to acknowledge a task completion is by routing ack as a message within a sequence. This is available throughout the ToObservable extension method of the Task class. Here's an example:

//as simple task 
var task = Task.Factory.StartNew(() => 
{ 
    Thread.Sleep...