我有一个代码,它有4个后台工作人员,正在从我的数据库中获取图像url的。每个都有一个foreach循环,将数据库结果放入一个列表中。然后使用此代码在运行时创建图像。
this.Bitmap = new BitmapImage(new Uri( -URL- , UriKind.Absolute));
Bitmap.DownloadCompleted += new EventHandler( -Event Below- );
事件检查它是否有任何图像(因为总是有图像,但如果链接无效则为空),如果没有图像,则打印“no image”文本。
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
...
下面是后台工作方法:
this.Dispatcher.Invoke(() =>
{
foreach (Book book in list)
{
if (book != null)
wrapPopular.Children.Add(new object_that_generates_the_bitmap);
}
});
我猜这是一个线程问题,但我不知道如何解决它。
暂无答案!
目前还没有任何答案,快来回答吧!