J'ai un problème dans mon code et je ne suis pas en mesure de le réparer.Problème de répartiteur/filetage WPF
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);
}
qui est appelé comme ceci:
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);
}
Il se bloque toujours sur cette ligne: img.Source = bi; L'erreur est: « Une exception non gérée du type « System.InvalidOperationException » a eu lieu dans WindowsBase.dll
Informations complémentaires: Le thread appelant ne peut pas accéder à cet objet parce qu'un autre thread est propriétaire. »
Merci
Merci pour la réponse. Le bitmapImage vient d'ici: private bitmapImage GetBitmapObject (int nPos) { return parameters.ListBitmaps [nPos]; } J'essaie de charger des fichiers bitmap à partir du disque et de les ajouter à une grille. J'ai besoin de le faire dans un fil afin que je puisse mettre à jour une fenêtre d'état pendant le chargement des images. – phm