title: Teardown a MessageBox programmatically without user input
body: <p>I'm using a <code>MessageBox</code> from time to time to pop up alert messages for the user. My particular application can be setup to run remotely so there are times where the user is in front of the computer and other times where the user may not be in front of the computer for hours or even days. Sometimes I popup an alert message using <code>MessageBox</code> but after some period of the time the alert is no longer relevant. For example, I popup an alert that a task can't be completed because of some criteria not being met. A few minutes later that criteria is met and the task begins. That <code>MessageBox</code> is no longer relevant.</p>
  
  <p>I want to be able to programmatically close the <code>MessageBox</code> in these cases where the message is no longer relevant. Is this possible? Currently I create my <code>MessageBox</code> objects in a thread using: </p>
  
  <pre><code>new Thread(() =&gt; MessageBox.Show("Some text", "Some caption")).Start();
  </code></pre>
  
  <p>I do this so that the application can continue to work in the background without being halted by the <code>MessageBox</code>. Any suggestions?</p>