Avatar billede Slettet bruger
17. marts 2008 - 10:30 Der er 4 kommentarer

Threaded Event, undgå invoke i event?

Jeg har en klasse jeg har lavet til filoverførsel. Her er der nogle events på som jeg hooker mig op på i min form. Men hvis jeg ændre noget på min form fra det event der kommer inde fra min sende tråd (fil overførsel) siger den cross-thread bla bla selfølgelig. Kan jeg undgå at skulle invoke det fra min form kode?

Grunden er at jeg har lavet en API til en klient, der bruger denne fil klasse, og ville gerne undgå at man skal invoke fra events i formen. Kan det gøres fra min API klasse inde i tråden eller?

Håber i forstår
Avatar billede winners79 Nybegynder
17. marts 2008 - 12:19 #1
er ikke sikker på at dette er den løsning du leder efter, men du kunne prøve at sætte Form.CheckForIllegalCrossThreadCalls = false;
Avatar billede Slettet bruger
17. marts 2008 - 14:57 #2
det er ikke en ordenlig løsning nej :) ellers tak
Avatar billede Slettet bruger
18. marts 2008 - 22:01 #3
ingen der kan hjælpe?
Avatar billede neshamar1975 Nybegynder
16. maj 2008 - 21:54 #4
Brug InvokeRequired, det spørger om det er brug for hovedtråden til at ændre i form, og gør det så hvis nødvendigt.

public delegate void SetLabelTextDelegate(string text);
       
        public void SetLabelText ( string myString )
        {
            if(InvokeRequired)
            {
                BeginInvoke(new SetLabelTextDelegate(SetLabelText));
                return;
            }
            label1.Text = myString;
        }
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester