NOVINKA - Online rekvalifikační kurz Python programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
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

V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.

Jak se ti líbí článek?
Před uložením hodnocení, popiš prosím autorovi, co je špatněZnaků 0 z 50-500
Jak se ti kurz líbí?
Tvé hodnocení kurzuZnaků 0 z 50-500
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.