这是我的代码的一部分:
public void refreshShowCase()
{
for (int i = 0; i < 12; ++i)
{
bitmapImage[i] = new BitmapImage(new Uri(posterURLCollection[i]));
image[i] = new Image { Source = bitmapImage[i] }; //Error occurs here****
}
}
当我运行这个时,我得到这个错误:调用线程必须是STA,因为许多UI组件都需要这个。
所以我在Disapther.Invoke
中添加了我的代码
this.Dispatcher.Invoke((Action)delegate
{
BitmapImage[] bitmapImage = new BitmapImage[14];
Image[] image = new Image[14];
//Do a loop for defining Bitmaps sources
for (int i = 0; i < 12; ++i)
{
bitmapImage[i] = new BitmapImage(new Uri(posterURLCollection[i]));
image[i] = new Image { Source = bitmapImage[i] };
}
}
现在我有这个错误:'Dispatcher'在当前上下文中不存在!
我该怎么解决这个问题?请帮忙。
Update1:提到的代码在我创建的类的void内!
在您的问题中,您在自定义类中使用this.Dispatcher.Invoke((Action)delegate
。 this
指的是该类内部的函数。您的自定义类没有Dispatcher
。
而是使用:App.Current.Dispatcher.Invoke((Action)delegate
并确保包含此代码的自定义类属于您的App
名称空间。