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 ;)

Share and Enjoy:
  • Technorati
  • Digg
  • Facebook
  • del.icio.us
  • Live
  • Google Bookmarks
  • DotNetKicks
  • DZone
  • TwitThis
  • Blogosphere News
  • Blogplay
  • LinkedIn
  • MisterWong
  • MisterWong.DE
  • MSN Reporter
  • MyShare
  • RSS
  • StumbleUpon
  • Suggest to Techmeme via Twitter
  • Tumblr
  • Twitter
  • Webnews.de
  • Yahoo! Bookmarks
  • Yigg

Leave a Reply