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...