title: How to edit a WritableBitmap.BackBuffer in non UI thread?
body: <p>My application runs CPU-heavy algorythms to edit an Image placed at a WPF window. I need the edition to be done in a background thread. However trying to edit the BackBuffer of WritableBitmap in non UI thread throws InvalidOperationException.</p>
  
  <pre><code>    private WriteableBitmap writeableBitmap;
  
      private void button1_Click(object sender, RoutedEventArgs e)
      {
          // Create WritableBitmap in UI thread.
          this.writeableBitmap = new WriteableBitmap(10, 10, 96, 96, PixelFormats.Bgr24, null);
          this.image1.Source = this.writeableBitmap;
  
          // Run code in non UI thread.
          new Thread(
              () =&gt;
              {
                  // 'Edit' bitmap in non UI thread.
                  this.writeableBitmap.Lock(); // Exception: The calling thread cannot access this object because a different thread owns it.
  
                  // ... At this place the CPU is highly loaded, we edit this.writeableBitmap.BackBuffer.
  
                  this.writeableBitmap.Unlock();
              }).Start();
      }
  </code></pre>
  
  <p>I have read dozens of manuals, all of them tells me to do the BackBuffer edition in UI thread (i.e <a href="http://msdn.microsoft.com/en-us/library/system.windows.media.imaging.writeablebitmap.aspx" rel="noreferrer">MSDN</a>).</p>
  
  <p>How to edit the WritableBitmap.BackBuffer in a non UI thread without any useless buffer copying/cloning?</p>