2011-01-16 10 views
1

Ich habe in meiner Windows Phone App mehrere Bilder, die an Uri gebunden sind, dies bewirkt, dass die UI Threa blockiert wird, wenn alle Bilder heruntergeladen werden. Ich kann eine BitmapImage-Instanz in einem anderen Thread nicht erstellen, da ich die Ausnahme "Ungültige Kreuzthreadoperation" erhalten würde.BitmapImage von Web-URI erhalten

Ich habe versucht, das Bild mit einem WebClient herunterzuladen, aber es gibt keinen Konstruktor, der einen Stream für BitmapImage akzeptiert.

Irgendwelche Gedanken, wie ich das Herunterladen von Bildern im Hintergrund erreichen kann?

dank

Amit

+0

Können Sie ein exmaple des Verfahrens geben Sie verwenden zum Download und binden? –

Antwort

2

Um Stream zu verwenden, um den Inhalt für eine BitmapImage Sie eine Instanz erstellen den Konstruktor Standard dann SetSource den Strom vorbei rufen Verwendung zur Verfügung zu stellen: -

var bi = new BitmapImage(); 
    bi.SetSource(myStream); 

Ich denke jedoch, dass Sie das Rad hier neu erfinden. Nehmen Sie ein den Link unten aussehen: -

Keep a low profile (LowProfileImageLoader helps the Windows Phone 7 UI thread stay responsive by loading images in the background

+0

Danke Mann! das hat den Trick gemacht ... –

0

Sie sind immer noch auf dem UI-Thread WebClient. Wenn Sie mit diesem Ansatz fortfahren, können Sie auch HttpWebRequest in Betracht ziehen. Hier sehen Sie ein funktionierendes Beispiel mit der Auflösung für die Ausnahme des ungültigen threadübergreifenden Zugriffs.

WebClient, HttpWebRequest and the UI Thread on Windows Phone 7

Verwandte Themen