ich habe ein Problem mit dem BackgroundWorker und das Laden eines BitmapImages von der URL. Über folgenden Code lade ich das Bild in der DoWork-Methode des BackroundWorkers herunter:
BitmapImage image = new BitmapImage();
image.BeginInit();
image.CacheOption = BitmapCacheOption.None;
image.UriCachePolicy = new RequestCachePolicy(RequestCacheLevel.BypassCache);
image.UriSource = new Uri(url);
image.EndInit();
//image.Freeze();
e.Result = image;
Das BItmapImage wird über e.Result an das Event RunWorkerCompleted übergeben. Wenn ich dann das BitmapImage einem Image-Control übergebe, kommt folgender Fehler:
Zitat |
Der aufrufende Thread kann nicht auf dieses Objekt zugreifen, da sich das Objekt im Besitz eines anderen Threads befindet. |
Im Internet gibt es ein paar Antworten auf dieses Problem, die sagen, man solle nach dem image.EndInit() ein image.Freeze() aufrufen, doch dann kommt bei mir folgender Fehler:
Zitat |
Dieses Freezable-Objekt kann nicht fixiert werden. |
Habt ihr eine Idee, was ich evtl. falsch mache? Danke!
Grüße
Dennis