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

Aktivity (1)
Avatar
D0ll0k
Člen
Avatar
D0ll0k:11.7.2016 22:50

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.7.2016 22:50
Ten, co se snaží "programovat"
Avatar
hj.masek
Člen
Avatar
hj.masek:11.7.2016 23:20

Mozna?

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

Promin chyba, lel

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

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.7.2016 9:50
Ten, co se snaží "programovat"
Avatar
Odpovídá na D0ll0k
sadlomaslox25:12.7.2016 12:17

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.7.2016 12:17
Avatar
D0ll0k
Člen
Avatar
Odpovídá na sadlomaslox25
D0ll0k:12.7.2016 13:11

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

Nahoru Odpovědět 12.7.2016 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.