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 😉
Recent Comments