加载URL源的WPF图像问题

时间:2018-10-21 14:56:53

标签: c# mysql .net wpf multithreading

我有一个代码,其中有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);
            }
        });

我猜这是一个线程问题,但我不知道如何解决。

0 个答案:

没有答案