🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: alt.pl.comp.lang.csharp
Article #9926

Re: CS, Eventy i Multicast

#9926
From: Piotr Dobrowolski
Date: Mon, 14 Nov 2005 13:30
46 lines
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-mail
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>

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