Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
Theodor Johnson
Tvůrce
Avatar
Theodor Johnson:11.7.2013 16:19

Ahoj, mám takový problém s příkazem for který vypadá asi takto

for (int i = 1; i < 6; i++)
            {
                loadingImage.Dispatcher.BeginInvoke(new Action(delegate()
                {
                    loadingImage.Source = SetLoadingImage(i);
                }));
                ...

                ...
            }

k tomu je ještě důležitá metoda

private BitmapImage SetLoadingImage(int number)
        {
            switch (number)
            {
                case 1:
                    return AdditionFunctions.ConvertBitmap(global::NewYoutubeCore.Properties.Resources._2);

                case 2:
                    return AdditionFunctions.ConvertBitmap(global::NewYoutubeCore.Properties.Resources._3);

                case 3:
                    return AdditionFunctions.ConvertBitmap(global::NewYoutubeCore.Properties.Resources._4);

                case 4:
                    return AdditionFunctions.ConvertBitmap(global::NewYoutubeCore.Properties.Resources._5);

                case 5:
                    return AdditionFunctions.ConvertBitmap(global::NewYoutubeCore.Properties.Resources._6);

                default:
                    throw new Exception(String.Format("index ({0}) out of range, index must be between 1 and 5", number.ToString()));
            }
        }

která mi vyhodí chybu

index (6) out of range, index must be between 1 and 5

tudíž přesně takovou jakou jsem ji zadal když číslo nebude mezi 1-5, ale for příkaz je nastavený aby se provedl pouze pokud i bude menší než 6, tudíž by ta chyba neměla nastat.

Editováno 11.7.2013 16:20
Odpovědět
11.7.2013 16:19
Mo8ilε 15 Ѐλđ
Avatar
Michal Žůrek - misaz:11.7.2013 16:35

a co na to debuger?

 
Nahoru Odpovědět
11.7.2013 16:35
Avatar
Theodor Johnson
Tvůrce
Avatar
Odpovídá na Michal Žůrek - misaz
Theodor Johnson:11.7.2013 16:42

Tak jsem zjistil že for je v pořádku, ale během provádění foru se nevyvolá metoda SetLoadingImage ani jednou, až po jeho dokončení se vyvolá s tím číslem 6

Nahoru Odpovědět
11.7.2013 16:42
Mo8ilε 15 Ѐλđ
Avatar
Homo
Člen
Avatar
Odpovídá na Theodor Johnson
Homo:11.7.2013 16:49

V C# se nevyznam, ale tohle

loadingImage.Dispatcher.BeginInvoke(new Action(delegate()
                {
                    loadingImage.Source = SetLoadingImage(i);
                }));

bych rekl ze se nevykona hned a zacne se to vykonavat az po skonceni cyklu kdy i je uplne jiny.
Zkus to zmenit jen na

loadingImage.Source = SetLoadingImage(i);

bez te vlaknove sra*ky :-D

Nahoru Odpovědět
11.7.2013 16:49
1010011 1000101 1011000
Avatar
Theodor Johnson
Tvůrce
Avatar
Odpovídá na Homo
Theodor Johnson:11.7.2013 16:57

takhle to funguje, ale pořebuju k tomu získat přístup i z jiného vlákna, protože ve wpf se nedá zjistit jestli se obrázek načetl nebo ne, asi to holt budu muset řešit jinak

Nahoru Odpovědět
11.7.2013 16:57
Mo8ilε 15 Ѐλđ
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 5 zpráv z 5.