title: C#, thread priorities, and locks
body: <p>In C#, if a high priority task is ready to execute and another (low priority) thread is already inside a monitor, would the low priority task be preempted in the following two scenarios:</p>
  
  <ol>
  <li>the higher priority task wants to acquire one (or more) locks that are acquired by the low priority task.</li>
  <li>the higher priority task doesn't need any locks acquired by the low priority task. </li>
  </ol>
  
  <p>Do the compiler/OS do anything clever in regards to task preemption or is it always the case that higher priority tasks always preempt lower priority tasks?</p>