[ Príspevkov: 2 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 14.07.12
Prihlásený: 10.11.13
Príspevky: 1
Témy: 1 | 1
NapísalOffline : 14.07.2012 17:21 | Delegáti a vlákna C#

Ahojte, vedel by mi niekto ľudsky vysvetliť čo sú to tí delegáti v C#?
+ aký je rozdiel medzi týmto fragmentom
Kód:
Thread t = new Thread(new ThreadStart(Pis));
a týmto:
Kód:
Thread t = new Thread(Pis);
... pričom "Pis" je metóda ktorá vypíše slovo Ahoj a v obidvoch prípadoch sa vykoná to isté? Diky :)


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 25.12.10
Prihlásený: 30.05.23
Príspevky: 94
Témy: 21 | 21
Bydlisko: Pezinok
NapísalOffline : 09.10.2012 13:47 | Delegáti a vlákna C#

Delegát je dátový typ (ako napríklad object alebo Int32) ktorý odkazuje na metódu. Akonáhle je delegátu priradená nejaká metóda správa sa presne ako akákoľvek iná metóda v rámci objektu. Používa sa najmä v spojitosti s eventami. Príklad. Máš na formulári Button objekt a potrebuješ aby nejakým spôsobom reagoval na kliknutie (dajme tomu, že potrebuješ otvoriť dialógové okno na uloženie súboru). Čo spravíš v kóde je
Kód:
mybutton.Click += new EventHandler(myDelegate);//myDelegate nie je nič iné len metóda ktorú si naprogramuješ
//keď užívateľ klikne na Button otvorí sa "Uložit" dialógové okno
private void myDelegate(sender object, EventArgs e)
{
  SaveFileDialog saveFileDialog1 = new SaveFileDialog();
  saveFileDialog1.ShowDialog();
}

Je to vlastne spôsob ako "pripájať" nový kód do už existujúceho.

Medzi prvým a druhým kusom kódu nie je v konečnom dôsledku žiadny rozdiel. Akonáhle je metóda Pis definovaná ako
Kód:
public static void Pis(){}
tak sa jednoducho zavolá pri volaní metódy
Kód:
Thread.Start();
pretože prvý parameter triedy Thread je definovaný ako delegát a ty mu len priraďuješ najakú hodnotu (ako premennej - len hodnotou tej premennej je adresa metódy)


 [ Príspevkov: 2 ] 


Delegáti a vlákna C#



Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy.

Schéma: Menič pre vlákna

v Elektronika

0

1088

23.01.2007 5:27

Elektronic

V tomto fóre nie sú ďalšie neprečítané témy.

I3- 2 jadra 4 vlakna

v Intel - Integrated Electronics

1

578

29.10.2012 11:52

EndersoN

V tomto fóre nie sú ďalšie neprečítané témy.

i5 M450 - zobrazuje len 2 vlakna

v Intel - Integrated Electronics

1

461

20.11.2012 23:00

brmbo



© 2005 - 2024 PCforum, edited by JanoF