title: Multi-threaded WPF Application: Dispatcher Invoke. A more efficient way?
body: <p>I am using .NET 3.5 .</p>
  <p>I am making a WPF application for a project and I was just looking a bit of insight regarding the Dispatcher and multithreading. An example of my program:</p>
  <pre><code>Application.Current.Dispatcher.Invoke(DispatcherPriority.Background, new Action(
                          () =&gt;_aCollection.Add(new Model(aList[i], aSize[i]))));
  
  Application.Current.Dispatcher.Invoke(DispatcherPriority.Background, new Action(
                          () =&gt; _Data.Add(new DataPoint&lt;double, double&gt;(Id, aList[i]))));
  
   Application.Current.Dispatcher.Invoke(DispatcherPriority.Background, new Action(
                          () =&gt; _historical[0].Add(aList[i])));
  </code></pre>
  <p>I understand that WPF does not like when another thread accessing an object other than the one that created it.  However, I was thinking there has to surely be a better way than making so many dispatcher invokes, could someone please push me in the right direction at least (if there is a better solution that is).</p>