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í.

Diskuze: c# form - chyba Invalid Operation Exception was unhandled

Aktivity
Avatar
Michaal.K
Člen
Avatar
Michaal.K:15.5.2017 18:09

Ahoj,
objevila se mi tato chyba a nevím co sní. Zkoušel jsem si vytvořit nové vlákno pro timer, viz. kód níže:

Thread aktCasThread;

public MainForm()
        {
            InitializeComponent();

            aktCasThread = new Thread(delegate()
            {
                this.statusStrip.Invoke(new MethodInvoker(delegate()
                {
                    timerAktCas.Start();
                }));
            });
            aktCasThread.Start();
        }

a hodí mi to chybu:
Invalid Operation Exception was unhandled
Nelze volat funkci Invoke nebo BeginInvoke pro ovládací prvek, dokud není vytvořen popisovač okna.
Nevíte někdo co stím? Díky...

 
Odpovědět
15.5.2017 18:09
Avatar
Radek Chalupa:15.5.2017 19:25

V konstruktoru třídy ještě není vytvořeno okno (HWND) formuláře, proto ta chyba. Když to spuštění vlákna dáš do události Load, mělo by to být v pořádku.
A každopádně doporučuji při použití vláken nastavit (klidně do konstruktoru) CheckForIllegal­CrossThreadCa­lls = false; i přesto že někteří fundamentalisté budou tvrdit že je to proti koncepci .NET :-)

Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
 
Nahoru Odpovědět
15.5.2017 19:25
Avatar
Michaal.K
Člen
Avatar
Odpovídá na Radek Chalupa
Michaal.K:16.5.2017 9:27

Super, už vše funguje jak má. Díky moc...

 
Nahoru Odpovědět
16.5.2017 9:27
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 3 zpráv z 3.