Проблема с изображением WPF при загрузке источников URL - PullRequest
0 голосов
/ 21 октября 2018

У меня есть код, который имеет 4 фоновых рабочих, которые получают URL-адреса изображений из моей базы данных.У каждого есть цикл foreach, который получает результаты базы данных в список.Затем изображения создаются на ходу с этим кодом.

this.Bitmap = new BitmapImage(new Uri( -URL- , UriKind.Absolute));
Bitmap.DownloadCompleted += new EventHandler( -Event Below- );

И событие проверяет, есть ли на нем изображение или нет (потому что изображение всегда есть, но оно пустое, если ссылка недействительна), печать текста "Нет изображения", если его нет.

if (((BitmapImage)sender).Width > 1)
    this.AddChild(Image);
else
    this.AddChild(new TextBlock() { Text = "No Image Available" });

Этот вид работает с моими списками.Но проблема возникает, когда у меня более длинный запрос, который занимает больше времени для выполнения.Итак, некоторые изображения отсутствуют, и на них нет сгенерированного текста.Но некоторые в порядке и работают отлично.Вот мой класс sqlHandler, если у меня проблема с читателем.

MySqlDataReader reader = mySqlCommand.ExecuteReader();
{
    while(reader.Read())
    //Get stuff
...

А вот метод фонового рабочего doWork:

this.Dispatcher.Invoke(() =>
        {
            foreach (Book book in list)
            {
                if (book != null)
                    wrapPopular.Children.Add(new object_that_generates_the_bitmap);
            }
        });

Я предполагаю, что это проблема с потоком, но яне знаю как это исправить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...