title: is it possible to return a value with synchronizationcontext .send
body: <p>We have a need to use SynchronizationContext to return a value (specifically a MessageBox DialogResult) via Send (we don't want asynch via 'Post'). Just not sure of the syntax.
  We were having issues with MessageBox appearing behind main window which was thought to be caused by not being able to access the main forms IWin32Window value easily...We're using this, but to be honest I'm uncomfortable with it. </p>
  
  <pre><code> DialogResult dr;
   SynchronizationContext synchContext;
  
   //in main forms constructor
    {
         ...
         synchContext = AsyncOperationManager.SynchronizationContext;
    }
  
   void workerThread( object obj, DoWorkEventArgs args)
   {
  
     // SynchronizationContext passed into worker thread via args
     sc.Send( delegate {dr = MessageBoxEx.Show( "Yes or no?", "Continue?",   MessageBoxButtons.OKCancel, MessageBoxIcon.Question );},null);
   }
  </code></pre>