System.IO.IOException 未处理消息:PresentationCore.dll 中出现类型为“System.IO.IOException”的未处理异常附加信息:无法从流中读取数据。
错误偶尔出现。该算法如下:
- 我收集了互联网上图片的链接,一切都很好
- 用于我使用的显示
ListBox
,它与集合相关联ObservableCollection<BitmapImage>
这是填充集合的方法
/// <summary>
/// Заполнение списка картинок
/// </summary>
/// <param name="addresses"></param>
private void LoadListImages(List<string> addresses)
{
//будущая коллекция картинок
ListImages = new ObservableCollection<BitmapImage>();
//to UI
MessageUser.MessageJob.Report("Загружаем картинки...");
try
{
int i = 1;
BitmapImage bImage = null;
foreach (var address in addresses)
{
//to UI
MessageUser.MessageJob.Report($"Загружаем {i}...");
//новая картинка
bImage = new BitmapImage(new Uri(address, UriKind.RelativeOrAbsolute));
//размеры
bImage.DecodePixelHeight = 100;
bImage.DecodePixelWidth = 100;
//картинку в коллекцию
ListImages.Add(bImage);
//счетчик
i++;
}
}
catch (Exception ex)
{
Debug.WriteLine($"{nameof(LoadListImages)} - {ex.Message}");
throw;
}
}
该方法奏效了。我什至一步一步地经历了它,甚至在发生这个错误的情况下,但是在退出方法后立即发生错误,即,据我了解,在用户界面应该已经开始显示图片并BitmapImage
开始“加载”所需的链接。如何克服?
这个问题通过一些异步风格的重写,加上拒绝直接在使用 , 的地址加载图像
BitmapImage
以及使用HttpClient
. 好吧,总的来说,图片开始一张一张地逐渐出现(加载),而不是像以前那样一下子出现。