Article View: alt.pl.comp.lang.csharp
Article #9926Re: CS, Eventy i Multicast
From: Piotr Dobrowolski
Date: Mon, 14 Nov 2005 13:30
Date: Mon, 14 Nov 2005 13:30
46 lines
3165 bytes
3165 bytes
Dnia 14-11-2005 o 11:29:52 .neter <gwrafal@poczta.onet.pl> napisał: > Paweł Filipiak wrote: >> Użytkownik "Piotr Dobrowolski" <Piotr.Dobrowolski@_usun_gmail.com> >> napisał w wiadomości >> news:op.sz4gtwmqzowjqs@da-pdobrowolski.windtelecom.pl... >> [...] >> >>> [PD] Drobna optymalizacja powyzszego pomyslu: tworzymy Hashtable (lub >>> Dictionary w 2.0), ktorej kluczem jest identyfikator item'a a >>> elementami delegaty. Metoda ZarejestrujMnie dodaje delegat do elementu >>> pod odpowiednim kluczem. W momencie przyjscia zdarzenia jeden strzal >>> do Hashtable i wywolanie znajdujacego sie tam delegata. Zysk >>> wydajnosciowy >> no dobrze, a gdzie tu rozróżnianie, jakimi typami eventu >> zarejestrowany Subskrybent jest "zainteresowany"? :) Klucze w Hashtable >> muszą byc unikatowe, czyli otrzymujemy relację 1=1 (jeden typ eventu na >> jednego i tylko jednego subskrybenta) >> >>> jest, chociaz przy takich ilosciach elementow o jakich kolega pisze >>> (30-40) to chyba overkill :) >> przy takiej ilości to dyskusja czysto akademicka ;) >> >>> >>> P.S. przepraszam jezeli cos sie pokaszani z encodingiem - zmienilem >>> czytnik. W razie czego krzyczcie ;) >> coś sie faktycznie krzaczy, ten UTF jakiś lewy, albo mój OE na tym >> poległ :( >> > Wydaje mi się że eventow nie wrzuca sie do hashtable m.in. dlatego że C# > został zaprojektowany jako statycznie typowany język - kontrola typów > obejmuje również eventy. A tak na marginesie to aktualna implementacja > eventow jest bardziej wydajna niż ten 'strzał w hashtable'. [PD] Co masz na mysli przez "aktualna implementacje eventow"? Aktualna (domyslna) implementacja eventow to utworzenie ukrytego pola w klasie i dodawanie do niego kolejnych wskaznikow na metody. Jak przychodzi zdarzenie to metody sa kolejno wywolywane... Nie rozwiazuje to jednak problemu podanego przez kolege. Natomiast z tego co wiem klasy we frameworku, ktore maja duzo eventow korzystaja wlasnie z jakiegos hashtable/mapy zeby nie alokowac pamieci na tyle delegatow ile jest eventow a tylko na te, ktore maja subskrybentow. -- Piotr Dobrowolski Piotr.Dobrowolski@_usun_gmail.com
Technical Details
Message-ID:
<op.sz8ftrpwzowjqs@da-pdobrowolski.windtelecom.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mailReferences:
<dkv4kp$jhi$1@news.onet.pl> <43733fc2$1@news.home.net.pl> <dkvik6$4un$1@nemesis.news.tpi.pl> <op.sz4gtwmqzowjqs@da-pdobrowolski.windtelecom.pl> <4378634a$1@news.home.net.pl> <dl9oq8$bfa$1@news.onet.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail From: "Piotr Dobrowolski" <Piotr.Dobrowolski@_usun_gmail.com> Newsgroups: alt.pl.comp.lang.csharp Subject: Re: CS, Eventy i Multicast Date: Mon, 14 Nov 2005 14:30:53 +0100 Organization: Wind Telecom Lines: 46 Message-ID: <op.sz8ftrpwzowjqs@da-pdobrowolski.windtelecom.pl> References: <dkv4kp$jhi$1@news.onet.pl> <43733fc2$1@news.home.net.pl> <dkvik6$4un$1@nemesis.news.tpi.pl> <op.sz4gtwmqzowjqs@da-pdobrowolski.windtelecom.pl> <4378634a$1@news.home.net.pl> <dl9oq8$bfa$1@news.onet.pl> NNTP-Posting-Host: gateway.wind.pl Mime-Version: 1.0 X-Trace: inews.gazeta.pl 1131975055 6387 212.244.228.198 (14 Nov 2005 13:30:55 GMT) X-Complaints-To: usenet@agora.pl NNTP-Posting-Date: Mon, 14 Nov 2005 13:30:55 +0000 (UTC) X-User: powersink User-Agent: Opera M2/8.50 (Win32, build 7700) Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit