2011-01-16 3 views
1

내 Windows Phone 앱에 uri에 바인드 된 여러 이미지가 있습니다. 이로 인해 모든 이미지가 다운로드 될 때 UI threa가 차단됩니다. "잘못된 크로스 스레드 작업"예외가 발생하기 때문에 다른 스레드에서 bitmapImage 인스턴스를 생성 할 수 없습니다.웹에서 BitmapImage 가져 오기

WebClient를 사용하여 이미지를 다운로드하려고했지만 BitmapImage에 대한 스트림을 허용하는 생성자가 없습니다.

백그라운드에서 이미지를 다운로드하는 방법에 대해 생각해보십시오.

감사

미트

+0

당신은 당신이 다운로드하고 결합하는 데 사용하는 방법의 exmaple을 줄 수 있습니까? –

답변

2

다음 스트림을 통과 SetSource 전화 기본 생성자를 사용하여 인스턴스를 만들 BitmapImage의 콘텐츠를 제공하기 위해 Stream를 사용하려면 : -

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

그러나 나는 당신이 바퀴를 여기에서 다시 발명하고 있을지도 모른다라고 생각한다. A는 아래 링크를 찾아 보자 -

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

+0

고마워요! 그 트릭을 했어. –

0

당신은 웹 클라이언트를 사용하여 UI 스레드에서 아직도. 이 방법을 계속 사용하면 HttpWebRequest를 고려할 수도 있습니다. 다음은 잘못된 크로스 스레드 액세스 예외에 대한 해결책을 포함하는 작동 샘플입니다.

WebClient, HttpWebRequest and the UI Thread on Windows Phone 7