Avatar
Theodor Johnson
Redaktor
Avatar
Theodor Johnson:

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
Přecházím na "Cross-Platform Development"
Avatar
Michal Žůrek (misaz):

a co na to debuger?

Nahoru Odpovědět 11.7.2013 16:35
Nesnáším {}, proto se jim vyhýbám.
Avatar
Theodor Johnson
Redaktor
Avatar
Odpovídá na Michal Žůrek (misaz)
Theodor Johnson:

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
Přecházím na "Cross-Platform Development"
Avatar
Homo
Člen
Avatar
Odpovídá na Theodor Johnson
Homo:

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
Redaktor
Avatar
Odpovídá na Homo
Theodor Johnson:

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
Přecházím na "Cross-Platform Development"
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.