BeginInvoke - dvakrát vyvolává událost   zodpovězená otázka

C#, Threading

Dobrý den,

mám problém s použitím BeginInvoke. Níže uvedená metoda se mi záhadně spouští dvakrát.

- metoda je napojena na EventHandler.

- EventHandler volá pouze jednou metodu m_interface_ChangedFile

- přitom je v této metodě nejdříve dvakrát za sebou voláno (procházeno) BeginInvoke

- potom je dvakrát za sebou volána metoda UpdateNodeFileChanged(e)

private void m_interface_ChangedFile(object sender, FileSystemEventArgs e)
        {
            try
            {
                if (InvokeRequired)
                {
                    BeginInvoke(new FileChangedCallBack(m_interface_ChangedFile), sender, e);
                }
                else
                {
                    UpdateNodeFileChanged(e);
                }
            }
            catch { ;}
        }

nedaří se mi zjistit příčinu proč je metoda m_interface_ChangedFile procházena celkem 4x a ne 2x (při BeginInvoke).

Předem děkuji za pomoc

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Záleží na tom, co máte v té metodě UpdateNodeFileChanged. Bez jejího kódu se asi dál nepohneme. Mimochodem ta vaše Try...Catch konstrukce je hrůza.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Takže problém vyřešen.

Omlouvám se, ale špatně jsem umístil odběr události a on se inicioval dvakrát :-(.

Ještě jednou se omlouvám, že jsem zbytečně obtěžoval.

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback