Мне было трудно решить довольно простую задачу: как скачать изображение с моего удаленного сервера?Правильный способ загрузки изображения Windows Phone 8
Самый простой способ сделать это просто:
BitmapImage img = new BitmapImage(new Uri("http://myserv/test.jpg", UriKind.Absolute));
xamlImageContainer.Source = img;
, но я думаю, что это решение не является идеальным, так как он может блокировать поток пользовательского интерфейса (может?). Поэтому я решил использовать «асинхронный» подход:
async void LoadImage()
{
xamlImageContainer.Source = await Task.Run(() =>
{
return new BitmapImage(new Uri("http://myserv/test.jpg", UriKind.Absolute));
});
}
Но на линии return new BitmapImage
я UnauthorizedAccessException, который говорит «недействительный доступ кросс-нить»! Что здесь не так, пожалуйста, предложите.
Я принял ваш ответ, потому что он работал. BitmapImage создает некоторые фоновые потоки внутри, когда используется так? –
Видимо, да. См. Документацию здесь: http://msdn.microsoft.com/en-us/library/windowsphone/develop/system.windows.media.imaging.bitmapcreateoptions(v=vs.105).aspx – anderZubi