title: When awaiting Task.Run for a compute bound operation, is the awaiting using a IOCP?
body: <p>I understand overlapped IO for things you do through IO, like sending a SQL Query or a HTTP request. So when doing <code>await http.GetAsync(url)</code> I imagine that the internals has queued an overlapped IO operation and my execution will continue when the ICOP is signalled.</p>
  <p>However, when we are running something that is purely compute bound in a thread pool worker thread, like <code>await Task.Run(() =&gt; CalculatePrimeNumbersFirst(n))</code>, is the thread calling <code>Task.Run</code> actually blocked because there is not actual IOCP registered?</p>
  <p>I think that callback I executed in the thread pool with signal the awaiter and continue the execution it self, but I could not find a good explanation about this.</p>