title: Calling thread cannot access object because different thread owns it
body: <p>I thought I knew what causes this exception until I wrote this:</p>
  
  <pre><code>var menu = ViewConfigHelper.CreateObjectFromResource&lt;Menu&gt;(config, baseURI);
  if (!menu.Dispatcher.CheckAccess())
  {
      throw new ArgumentException("Somethign wrong");
  }
  if (!LayoutRoot.Dispatcher.CheckAccess())
  {
      throw new ArgumentException("SOmethign wrong");
  }
   // exception throw here
  LayoutRoot.Children.Insert(0, menu);
  </code></pre>
  
  <p>First line creates a Menu control from an embedded XAML file. Both CheckAccess calls return true.  However, when last line is executed, an exception is thrown with the message "Caling thread cannot access object because differrent thread owns it."  The code above is being executed within a method called immediately after InitializeComponent() that created LayoutRoot, on the same thread, I believe.  </p>
  
  <p>Someone please enlighten me.  I am trying to create a multiple UI thread WPF app.</p>