title: Is it a bad practice to combine use of Task and IObservable in my C# application?
body: <p>I've recently gotten into Rx and I'm using it to help me pull data from several APIs in a data mining application.</p>
  
  <p>I have an interface that I implement for each API, which encapsulates common calls to each API, e.g.</p>
  
  <pre><code>public interface IMyApi {
  
      IObservable&lt;string&gt; GetApiName(); //Cold feed for getting the API's name.
  
      IObservable&lt;int&gt; GetNumberFeed(); //Hot feed of numbers from the API
  
  }
  </code></pre>
  
  <p>My question is around cold IObservables vs Tasks. In my mind, a cold observable is basically a task, they operate in much the same way. It strikes me as strange to be 'abstracting' a Task away as a cold observable, when you could argue that a Task is all you need. Also using a cold observable to wrap Tasks hides the nature of the activity, since the signature looks the same as a hot observable.</p>
  
  <p>Another way I could represent the above interface is:</p>
  
  <pre><code>public interface IMyApi {
  
      Task&lt;string&gt; GetApiNameAsync(); //Async method for getting the API's name.
  
      IObservable&lt;int&gt; GetNumberFeed(); //Hot feed of numbers from the API
  
  }
  </code></pre>
  
  <p>Is there some conventional wisdom on why I shouldn't mix and match between Tasks and IObservables?</p>
  
  <p>Edit: To clarify - I've read the other discussions posted and understand the relationship between Rx and TPL, but my concerns are mainly about whether or not it's <strong>safe</strong> to combine the two in an application and whether it can lead to bad practice or threading and scheduling pitfalls?</p>