Control.Invoke gibt es in der schönen neuen WPF Welt leider nicht mehr. Darum ein kurzer Post ohne viel Erklärung wie man das in WPF Anwendungen löst.

private void SetPicture(BitmapSource newImageFromThread)
{
   if (Camera.Dispatcher.CheckAccess())
  
{
     
// The calling thread owns the dispatcher, and hence the UI element  
     
Camera.Source = newImageFromThread;
   }
  
else
  
{
      newImageFromThread.Freeze();
     
// Invokation required
    
Camera.Dispatcher.Invoke(DispatcherPriority.Normal, (Action)delegate(){ Camera.Source =newImageFromThread; });
}}

Der eigentliche Spass war jedoch das BitmapSource. Dieses ist leider nicht MultiThread fähig, deswegen muß man BitmapSource.Freeze(); aufrufen! Hoffe das erspart euch irgendwann ein wenig suchen 😉