title: Why use Dispatcher.Invoke((ThreadStart)delegate...in WPF?
body: <p>I usually use <code>Dispatcher.Invoke</code> when i need to access some UI elements from background thread. Recently i had to change other's written sources and i saw that same tasks he accomplishes with constructions like:</p>
  
  <pre><code>Dispatcher.Invoke((ThreadStart)delegate
              {
                //some code that uses controls from UI
              });
  </code></pre>
  
  <p>When should i use such code instead of <code>Dispatcher.Invoke/BeginInvoke</code> and why?</p>