title: How can I ensure a specific background worker thread executes before another one?
body: <p>I have a WPF application with <strong>two</strong> background worker threads that operate while loading.</p>
  
  <p>The first one (<strong>bw1</strong>) is spawned at application start, and the second one (<strong>bw2</strong>) is spawned after some time has elapsed.</p>
  
  <p>I am in a situation that I CAN'T spawn the second background worker (<strong>bw2</strong>) from the first one's (<strong>bw1</strong>) "worker_completed".</p>
  
  <p>Currently, I have a class-level bool variable (default <code>false</code>), and set it <code>true</code> in <strong>bw1</strong>'s worker_completed.</p>
  
  <p>And at the starting of <strong>bw2</strong>, I have a check to see if the above bool is false, and if so, <strong>bw2</strong> will sleep for 100 milliseconds.</p>
  
  <p>This works, for the most part. I'd like to improve it.</p>
  
  <ul>
  <li><p>Can I use thread priority in <strong>bw1</strong> (set it as highest, say) to ensure that <strong>bw1</strong> is executed while <strong>bw2</strong> sleeps?</p></li>
  <li><p>Is there an event-driven way I can accomplish this goal?</p></li>
  </ul>