title: Do I need to worry about blocking tasks?
body: <p>How much do I need to worry about blocking tasks in .NET? i.e. how does the .NET task scheduler handle blocking of threads in the thread pool and oversubscription?</p>
  
  <p>E.g. if I have some IO in a task, should I always create it with the <code>LongRunning</code> hint? Or does the task scheduler heuristics handle it better? In C++ there is an <code>Oversubscribe</code> hint which works perfectly but I have not found any equivalent in .NET.</p>