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
App. WinForms / WPF .NET
Semplice informazioni sul metodo Dispose
venerdì 19 maggio 2006 - 18.30
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
trinity
Profilo
| Guru
3.465
messaggi | Data Invio:
ven 19 mag 2006 - 18:30
Dopo che ho utilizzato una SqlCommand eseguo sempre il metodo Dispose di questa cioè SqlCommand.Dispose
Pensavo di utilizzare il metodo dispose anche alla ciusura di una form in questo modo:
Me.Close()
Me.Dispose()
ma navigando in internet ho letto che la form nel metodo close esegue già il dispose e pertanto non è necessario ri-eseguirlo.
E' verò?
Ps alla chiusura della form tutti gli oggetti ide al suo interno eseguo direttamente il Dispose in automatico?
Ciao
Cirillo Fabio
www.wondernet.biz
fabio@wondernet.biz
http://blogs.dotnethell.it/fabiocirillo/
alextyx
Profilo
| Expert
668
messaggi | Data Invio:
sab 20 mag 2006 - 18:27
Per quanto mi ricordo, il metodo close di una classe ben fatta richiama il metodo dispose, che a sua volta richiama il metodo dispose della classe da cui eredita (Mybase.Dispose) e poi provvede a disporre le risorse aggiunte rispetto alla classe base. Normalmente il metodo dispose è strutturato in maniera da poter essere chiamato più volte senza che si verifichino problemi, in genere con una variabile statica all'interno della procedura che impedisce di eseguire due volte le stesse istruzioni.Quindi la risposta dovrebbe essere: "Il metodo close rende inutile la chiamata esplicita al metodo dispose". Non so se esistano significative eccezioni, ma io insisto a scrivere come te, cioè close+dispose, pur dicendomi che sbaglio. Una cosetta in più che invece può meritare di essere presa in considerazione è l'assegnare il valore nothing in maniera esplicita ad un oggetto. Infatti l'aver chiamato il metodo dispose non assicura affatto che l'oggetto sia divenuto = nothing. In effetti esso risulta solo disponibile per una garbage collection, ma non è predicibile quando questa avvenga, a meno di non chiamarla esplicitamente e dal momento che tale operazione avviene su un thread separato, per avere la certezza che essa sia stata eseguita, si deve esplicitamente aspettarne la fine ( mi pare che l'istruzione sia qualcosa come GC.waitforpendingfinalize).
Insomma, credo che la profonda comprensione di questi meccanismi trascenda le capacità cognitive di un primate superiore del livello dell'uomo
. Solo alla Microsoft esiste una razza eletta, geneticamente modificata, capace di assurgere a livelli talmente elevati di consapevolezza, da poter concepire simili meccanismi. Per noi poveri sapiens-sapiens non rimane che la triste presa di coscienza dei nostri ristretti limiti
.... e ancora non si è parlato delle 'generazioni' (che sono 3, mi pare) degli oggetti contrassegnati per l'eliminazione
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 !