title: Avoid calling Invoke when the control is disposed
body: <p>I have the following code in my worker thread (<code>ImageListView</code> below is derived from <code>Control</code>):</p>
  
  <pre><code>if (mImageListView != null &amp;&amp; 
      mImageListView.IsHandleCreated &amp;&amp;
      !mImageListView.IsDisposed)
  {
      if (mImageListView.InvokeRequired)
          mImageListView.Invoke(
              new RefreshDelegateInternal(mImageListView.RefreshInternal));
      else
          mImageListView.RefreshInternal();
  }
  </code></pre>
  
  <p>However, I get an <code>ObjectDisposedException</code> sometimes with the <code>Invoke</code> method above. It appears that the control can be disposed between the time I check <code>IsDisposed</code> and I call <code>Invoke</code>. How can I avoid that?</p>