У меня проблема с кодом, и я не могу ее исправить.
private static void SetupImages(object o)
{
int i = (int)o;
BitmapImage bi = GetBitmapObject(i);
img = new System.Windows.Controls.Image();//declared as static outside
img.Source = bi;//crash here
img.Stretch = Stretch.Uniform;
img.Margin = new Thickness(5, 5, 5, 5);
}
который называется так:
for (int i = 0; i < parameters.ListBitmaps.Count; i++)
{
ParameterizedThreadStart ts = new ParameterizedThreadStart(SetupImages);
Thread t = new Thread(ts);
t.SetApartmentState(ApartmentState.STA);
t.Start(i);
t.Join();
//SetupImages(i);
parameters.ListImageControls.Add(img);
}
В этой строке всегда происходит сбой: img.Source = bi;
Ошибка:
«Произошло необработанное исключение типа« System.InvalidOperationException »в WindowsBase.dll
Дополнительная информация: вызывающий поток не может получить доступ к этому объекту, так как он принадлежит другому потоку. "
Спасибо