Diskuze: Přístup ke kontrolkám z hlavního vlákna vytvořené v BackgroundWorkeru

C# .NET .NET (C# a Visual Basic) Přístup ke kontrolkám z hlavního vlákna vytvořené v BackgroundWorkeru American English version English version

Avatar
D0ll0k
Člen
Avatar
D0ll0k:

Ahojte. Mám takový problém s přístupem ke kontrolkám z hlavního vlákna vytvořené v BackgroundWorkeru.
Pomocí BackgroundWorkeru si načtu několik obrázků ze složky, vytvořím instance PictureBoxu a pak je přiřadím k pictureBox.Image. Když ale chci přidat pictureBox do formu, hodí mi to chybovou hlášku:

Additional information: Operace mezi vlákny není platná: Přístup k ovládacímu prvku  proběhl z jiného vlákna než z vlákna, v rámci kterého byl vytvořen.

Zkoušel jsem hledat na internetu řešení, ale bohužel jsem nic nenašel. Hádám, že to bude mít něco společného s Invoke() nebo BeginInvoke().

Odpovědět 11. července 22:50
Ten, co se snaží "programovat"
Avatar
hj.masek
Člen
Avatar
hj.masek:

Mozna?

TvojeControlka.Invoke(new Action(() => Label1.Text = "zmena"));
Editováno 11. července 23:22
 
Nahoru Odpovědět 11. července 23:20
Avatar
hj.masek
Člen
Avatar
Odpovídá na hj.masek
hj.masek:

Promin chyba, lel

Label1.Invoke(new Action(() => Label1.Text = "zmena"));
 
Nahoru Odpovědět 11. července 23:26
Avatar
D0ll0k
Člen
Avatar
Odpovídá na hj.masek
D0ll0k:

Díky, ale nepoužívá se to při manipulaci když ti běží více vláken využívající tu stejnou kontrolku? Tohle jsem na mysli neměl. Vlastnosti kontrolky mi jdou v nastavovat v pohodě. Jediné co nejde je přidávání kontrolek vytvořené v jiném vlákně do formu hlavním vláknem.

Nahoru Odpovědět 12. července 9:50
Ten, co se snaží "programovat"
Avatar
Odpovídá na D0ll0k
sadlomaslox25:

no pokud vim tak kontrolky si thread-bound coz znamena ze kontrolka nalezi takovemu vlaknu, ktere zavolalo konstruktor kontrolky. kdyz mas form vytvoreny ve vlaknu 1 tak do toho nemuzes vrazit kontrolku vytvorenou na vlakne 2.

Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
 
Nahoru Odpovědět  +1 12. července 12:17
Avatar
D0ll0k
Člen
Avatar
Odpovídá na sadlomaslox25
D0ll0k:

Aha, tak to budu asi muset předělat kód :-S . Ale díky

Nahoru Odpovědět 12. července 13:11
Ten, co se snaží "programovat"
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 6 zpráv z 6.