title: Dispatcher.BeginInvoke always return DispatcherOperationStatus.Pending status
body: <p>I try to update <code>ObservableCollection</code> asynchronously using the following code in my WPF project:</p>
  
  <pre><code>if (Dispatcher.Thread != Thread.CurrentThread)
  {
      if (Dispatcher.Thread.ThreadState != ThreadState.Stopped &amp;&amp; !Dispatcher.Thread.IsBackground)
      {
          Dispatcher.Invoke(new Action(() =&gt; { ChangeCollectionByAction(action); }), null);
      }
      else
      {
          var op = Dispatcher.BeginInvoke(new Action(() =&gt; { ChangeCollectionByAction(action); }), null);
          var status = op.Status;
          while (status != DispatcherOperationStatus.Completed)
          {
              status = op.Wait(TimeSpan.FromSeconds(1));
          }
      }
  }
  </code></pre>
  
  <p>But unfortunetly status alway equals <code>DispatcherOperationStatus.Pending</code>.</p>
  
  <p>p.s.: may be my problem that i use ElementHost on WinForms project?</p>