Cześć, sprawdziłem Twój skrypt i u mnie działa, lekko zmodyfikowałem kod, ponieważ nie wiem co robi "DelegatBitmapImage", a druga sprawa to nieskończona pętla "while(true)", która podmienia obrazki w nieskończoność blokując główny wątek metodą Invoke. Zobacz na mój kod, który działa:
Thread watekObrazowania = new Thread(
delegate()
{
List<string> sciezki = new List<string>() {"1.JPG", "2.JPG", "3.JPG", "4.JPG" };
for(int i = 0; i < sciezki.Count; i++)
{
// operacje w skutek których tworzony jest obraz nie będę to ich pisał bo namieszają w każdym razie to działa
string sciezkaZapisz = sciezki[i];
BitmapImage tmp = new BitmapImage();
tmp.BeginInit();
tmp.CacheOption = BitmapCacheOption.OnLoad;
tmp.UriSource = new Uri(sciezkaZapisz, UriKind.RelativeOrAbsolute);
tmp.EndInit();
tmp.Freeze();
if (!imageObraz.Dispatcher.CheckAccess())
{
/*this.imageObraz.Dispatcher.Invoke(new Action(() => {
imageObraz.Source = tmp;
}));*/
this.imageObraz.Dispatcher.Invoke(new Action<BitmapImage>(delegate(BitmapImage bi)
{
imageObraz.Source = bi;
}), tmp);
}
else
{
imageObraz.Source = tmp;
}
//Thread.Sleep(2 * 1000);
}
}
);
watekObrazowania.Start();