Perché alcune persone usano il Finalizemetodo rispetto al Disposemetodo? In quali situazioni useresti il Finalizemetodo rispetto al Disposemetodo e viceversa?
DataSet e DataTable implementano entrambi IDisposable, quindi, secondo le migliori pratiche convenzionali, dovrei chiamare i loro metodi Dispose (). Tuttavia, da quello che ho letto finora, DataSet e DataTable in realtà non hanno risorse non gestite, quindi Dispose () in realtà non fa molto. Inoltre, non posso semplicemente usarlo using(DataSet …
Qualcosa di simile a: using (IDisposable disposable = GetSomeDisposable()) { //..... //...... return Stg(); } Credo che non sia un posto adatto per una dichiarazione di ritorno, vero?
Inizia con queste semplici classi ... Diciamo che ho un semplice set di classi come questo: class Bus { Driver busDriver = new Driver(); } class Driver { Shoe[] shoes = { new Shoe(), new Shoe() }; } class Shoe { Shoelace lace = new Shoelace(); } class Shoelace { …
Il modello IDisposable .NET implica che se si scrive un finalizzatore e si implementa IDisposable, il finalizzatore deve chiamare esplicitamente Dispose. Questo è logico ed è quello che ho sempre fatto nelle rare situazioni in cui un finalizzatore è garantito. Tuttavia, cosa succede se faccio solo questo: class Foo : …
Voglio attivare un'attività da eseguire su un thread in background. Non voglio aspettare il completamento delle attività. In .net 3.5 avrei fatto questo: ThreadPool.QueueUserWorkItem(d => { DoSomething(); }); In .net 4 il TPL è il modo suggerito. Lo schema comune che ho visto consigliato è: Task.Factory.StartNew(() => { DoSomething(); }); …
Ho creato un controllo utente WPF personalizzato che deve essere utilizzato da una terza parte. Il mio controllo ha un membro privato che è usa e getta e vorrei assicurarmi che il suo metodo dispose venga sempre chiamato una volta chiusa la finestra / applicazione contenente. Tuttavia, UserControl non è …
Il mio problema principale è che quando usingchiama Disposea StreamWriter, elimina anche lo BaseStream(stesso problema con Close). Ho una soluzione alternativa per questo, ma come puoi vedere, si tratta di copiare lo stream. C'è un modo per farlo senza copiare lo stream? Lo scopo di ciò è ottenere il contenuto …
Ho il seguente codice using(MemoryStream ms = new MemoryStream()) { //code return 0; } Il dispose()metodo viene chiamato alla fine delle usingparentesi graffe dell'istruzione, }giusto? Dato che io returnprima della fine della usingdichiarazione, l' MemoryStreamoggetto verrà smaltito correttamente? Che succede qui?
Quando implementerei IDispose su una classe anziché su un distruttore? Ho letto questo articolo , ma ancora mi manca il punto. La mia ipotesi è che se implemento IDispose su un oggetto, posso esplicitamente "distruggerlo" invece di aspettare che lo faccia il garbage collector. È corretto? Ciò significa che dovrei …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.