title: Why ConfigureAwait(false) is not the default option?
body: <p>As you know, it it a good idea to call <code>Task.ConfigureAwait(false)</code> when you are waiting on a task in a code that does not need to capture a synchronization context, because it can <a href="http://blog.stephencleary.com/2012/07/dont-block-on-async-code.html">cause deadlocks</a> otherwise.</p>
  
  <p>Well, how often do you need to capture a synchronization context? I my practice, very rarely. In most situations I am working with "library" code that pretty much forces me to use <code>Task.ConfigureAwait(false)</code> all the time.</p>
  
  <p>So my question is pretty simple: why <code>Task.ConfigureAwait(false)</code> is not the default option for a task? Would not it be much better to force "high-level" code to use <code>Task.ConfigureAwait(true)</code>? Is there a historical reason for it, or am I missing something?</p>