title: C#: wrap syncronous call to introduce timeout
body: <p>I have a syncronous call:</p>
  
  <pre><code>var answer = obj.SyncCall(question);
  </code></pre>
  
  <p>It may execute for indefinitely long, but I would like to limit it's execution time:</p>
  
  <pre><code>// throws TimeoutException if not complete in 1000ms
  var answer = obj.SyncCall(question, 1000);
  </code></pre>
  
  <p>How to wrap a <em>sync</em> call into thread to allow described behaviour?</p>