Sono consapevole che tutti gli oggetti che implementano IDisposable
devono essere eliminati non appena non sono più necessari per liberare la memoria utilizzata dalle loro risorse non gestite.Devo preoccuparmi di chiamare disporre oggetti che condividono la durata del processo?
La mia domanda riguarda oggetti che conosco per un fatto finché il processo host non verrà terminato. Farebbe qualche differenza se li caccio o no? C'è qualche possibilità che la memoria non venga liberata quando il processo muore? Che dire degli oggetti GDI? Le maniglie GDI sarebbero liberate quando il processo muore anche se non sono state eliminate?
Capisco perfettamente che è buona norma disporre di tutti gli oggetti comunque. Lo chiedo solo per curiosità.
http://blogs.msdn.com/b/kimhamil/archive/2008/11/05/when-to-call-dispose.aspx Wow, la gente mi ha saltato addosso come un branco di cani su un gatto a 3 zampe per aver detto di non disporre. Ho trovato che fa più male che aiuta. Non dovrebbe essere gestito da un contenitore il ciclo di vita, non il codice hard ??? – CrazyDart
@CrazyDart Grazie, è una lettura di iteresting, sebbene si occupi principalmente della domanda "Dovrebbe essere disposto l'oggetto di tipo X normalmente". La domanda più specifica a cui sto cercando di rispondere è "l'oggetto di tipo X, che dovrebbe essere definitivamente ** disposto normalmente, essere disposto anche se condivide la durata del processo?" – Rotem
@CrazyDart Quando Dispose ti ha ferito? Il link che fornisci fornisce alcuni esempi di quando Dispose non deve essere chiamato, ma la regola generale dovrebbe essere comunque chiamarla a meno che tu non abbia una buona ragione per non farlo. – hvd