Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
.NET Framework
Agiunta metodo statico a evento di oggetto
domenica 14 agosto 2011 - 19.53
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Elenco Tags
C#
andrestu
Profilo
| Expert
772
messaggi | Data Invio:
dom 14 ago 2011 - 19:53
Ho un dubbio atroce e vorrei capire meglio il meccanismo:
ho una classe non statica con all'interno dichiarato un evento, ovviamente per essere utilizzata questa classe deve essere istanziata, creo dunque l'oggetto:
MIA_CLASSE oggetto1 = new MIA_CLASSE();
Quindi una volta istanziato l'oggetto aggiungo all'evento un metodo statico:
oggetto1.MIO_EVENTO += new EventHandler(METODO_STATICO);
a questo punto non riesco a capire bene cosa accade se istanzio diversi altri oggetti (oggetto1, oggetto2, oggetto3 ...) e faccio la stessa operazione, cioè aggiungo lo stesso metodo statico all'evento di ogni oggetto.
visto che è un metodo statico c'è una differenza nel modo in cui viene eseguito rispetto ad uno non statico?
Se all'interno di questo metodo c'è per esempio un stringa non statica (string MIA_STRINGA = "ciao") rimane differente per ogni oggetto o no?
Rimangono indipendenti le esecuzioni dello stesso metodo statico?
Andrea Restucci - Web Programmer
www.andrearestucci.name
Download and try my FREE custom controls !!!
u235
Profilo
| Junior Member
125
messaggi | Data Invio:
gio 18 ago 2011 - 13:01
ciao
tutti i metodi statici sono "thread-safe" se le uniche variabili che utilizza sono variabili locali o parametri. Se invece al suo interno manipoli in qualche modo qualche campo statico o comunque risorsa condivisa e accessibile da più fonti simultaneamente allora vi è il rischio di comportamenti anomali. Nel caso vi sia un unica "fonte" ad accedervi, il problema non si pone nemmeno nel secondo caso.
Almeno così dovrebbe essere per via del fatto che ogni richiesta ha il proprio stack di chiamate.
andrestu
Profilo
| Expert
772
messaggi | Data Invio:
gio 18 ago 2011 - 14:43
grazie per la risposta,
la domanda era riferita ad un contesto aspnet webserver dove la stessa pagina (quindi parliamo dell'oggetto Page) viene richiamata da utenti diversi quindi avrò diversi oggetti page che utilizzano lo stesso metodo statico, a me interessa che le operazioni all'interno del metodo statico (cioè operazioni su membri interni non statici o parametri passati) non siano condivise altrimenti succede un pasticcio. Quindi anche in base a quello che dici te dovrei stare tranquillo...
Però rimango curioso sul meccanismo interno, e cioè se allo stesso tempo due o più oggetti page eseguono lo stesso metodo statico, tale metodo viene eseguito in parallelo (come se ciascun oggetto eseguisse un metodo interno non statico) oppure cè qualche meccanismo di "esecuzione in coda di attesa", e cioè il metodo viene eseguito in sequenza per ogni oggetto che lo richiama?
Andrea Restucci - Web Programmer
www.andrearestucci.name
Download and try my FREE custom controls !!!
u235
Profilo
| Junior Member
125
messaggi | Data Invio:
gio 18 ago 2011 - 16:55
dovrebbe essere più vicina la prima, ogni chiamata a un metodo statico, sarà una "copia" del metodo e delle sue variabili locali.
invoco però il beneficio del dubbio!
andrestu
Profilo
| Expert
772
messaggi | Data Invio:
ven 19 ago 2011 - 07:41
E invece in termini di prestazioni (velocità di esecuzione) secondo te ci può essere differenza tra far usare un metodo statico oppure un metodo non statico interno all'oggetto stesso?
Sicuramente ce ne sarà in termini di occupazione di memoria...
Andrea Restucci - Web Programmer
www.andrearestucci.name
Download and try my FREE custom controls !!!
u235
Profilo
| Junior Member
125
messaggi | Data Invio:
ven 19 ago 2011 - 13:49
ciao, si, ma secondo me è trascurabile la differenza...
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !