title: Refresh TextBlock quicker from another thread
body: <p>I do have a WPF application displaying data (computed from another thread) in real-time. But my UI components (here a <code>TextBlock</code>) update very slowly.
  I use traditional data binding with <code>PropertyChanged</code> notifications.
  xaml :</p>
  
  <pre><code>&lt;TextBlock
            Foreground="DarkGray"
            Text="{Binding Path=ContactSurface, StringFormat='{}{0:0.00} cm²'}"/&gt;
  </code></pre>
  
  <p>code-behind (no, this is not MVVM, shame on me) :</p>
  
  <pre><code>private double _contactSurface;
      public double ContactSurface
      {
          get { return _contactSurface; }
          set { _contactSurface = value; RaisePropertyChanged("ContactSurface"); }
      }
  
      public void Compute() // external thread about 10 Hz
      {
          ContactSurface = (double)nbSensorsNotNulls * DataSource.SensorSurface * 0.01;
  
          Dispatcher.BeginInvoke(System.Windows.Threading.DispatcherPriority.Render, new Action(() =&gt; { })); // does not change a thing
          //Dispatcher.Invoke(System.Windows.Threading.DispatcherPriority.Render, new Action(() =&gt; { })); // crash : Cannot perform this operation while dispatcher processing is suspended.
  
          //UpdateLayout(); // crash : The calling thread can not access this object because a different thread owns it
          //InvalidateVisual(); // crash : The calling thread can not access this object because a different thread owns it
  
      }
  </code></pre>
  
  <p>I've tried some things I've found around the web at the end of <code>Compute()</code> with very mean results detailes </p>