title: Duplex Callbacks or Client-Side Threading for Responsive WCF Clients
body: <p>I have a certain service where specific functions will take longer to call than others, sometimes they might take seconds to return. In order to prevent the client's UI being blocked when this happens what is the preferred solution:</p>
  
  <ol>
  <li>Use a Duplex channel and simply use the callbacks to update the UI when data is received.</li>
  <li>Use a separate thread to call the service, and simply use request-reply operations, and then update the ui thread when data is returned.</li>
  </ol>
  
  <p>Which solution is better, particularly when interoperability is favored but not strictly necessary, and in your opinion, which one is faster (and cleaner) to implement and maintain?</p>