Avez-vous besoin de disposer des objets et de les mettre à zéro, ou le garbage collector les nettoiera-t-il lorsqu'ils sortiront du champ
Effectue des tâches définies par l'application associées à la libération, à la libération ou à la réinitialisation de ressources non gérées
Avez-vous besoin de disposer des objets et de les mettre à zéro, ou le garbage collector les nettoiera-t-il lorsqu'ils sortiront du champ
Pourquoi certaines personnes utilisent-elles la Finalizeméthode plutôt que la Disposeméthode? Dans quelles situations utiliseriez-vous la Finalizeméthode plutôt que la Disposeméthode et vice
DataSet et DataTable implémentent tous deux IDisposable, donc, selon les meilleures pratiques conventionnelles, je devrais appeler leurs méthodes Dispose (). Cependant, d'après ce que j'ai lu jusqu'à présent, DataSet et DataTable n'ont en fait aucune ressource non gérée, donc Dispose () ne fait pas...
Quelque chose comme: using (IDisposable disposable = GetSomeDisposable()) { //..... //...... return Stg(); } Je crois que ce n'est pas un endroit approprié pour une déclaration de retour, n'est-ce
Commencez par ces classes simples ... Disons que j'ai un simple ensemble de classes comme celui-ci: class Bus { Driver busDriver = new Driver(); } class Driver { Shoe[] shoes = { new Shoe(), new Shoe() }; } class Shoe { Shoelace lace = new Shoelace(); } class Shoelace { bool tied = false; } A Busa...
Le modèle .NET IDisposable implique que si vous écrivez un finaliseur et implémentez IDisposable, votre finaliseur doit appeler explicitement Dispose. C'est logique, et c'est ce que j'ai toujours fait dans les rares situations où un finaliseur est justifié. Cependant, que se passe-t-il si je fais...
Je souhaite déclencher une tâche à exécuter sur un thread d'arrière-plan. Je ne veux pas attendre la fin des tâches. Dans .net 3.5, j'aurais fait ceci: ThreadPool.QueueUserWorkItem(d => { DoSomething(); }); Dans .net 4, le TPL est la méthode suggérée. Le modèle commun que j'ai vu recommandé est:...
J'ai créé un contrôle utilisateur WPF personnalisé destiné à être utilisé par un tiers. Mon contrôle a un membre privé qui est jetable, et je voudrais m'assurer que sa méthode dispose sera toujours appelée une fois que la fenêtre / l'application contenant est fermée. Cependant, UserControl n'est...
Mon problème fondamental est que lorsque vous usingappelez Disposea StreamWriter, il élimine également le BaseStream(même problème avec Close). J'ai une solution de contournement pour cela, mais comme vous pouvez le voir, cela implique de copier le flux. Existe-t-il un moyen de le faire sans copier...
J'ai le code suivant using(MemoryStream ms = new MemoryStream()) { //code return 0; } La dispose()méthode est appelée à la fin des usingaccolades, }non? Puisque j'ai returnavant la fin de la usingdéclaration, l' MemoryStreamobjet sera-t-il éliminé correctement? Que se passe t-il...
Quand est-ce que j'implémenterai IDispose sur une classe par opposition à un destructeur? J'ai lu cet article , mais je manque toujours le point. Mon hypothèse est que si j'implémente IDispose sur un objet, je peux explicitement le «détruire» plutôt que d'attendre que le garbage collector le fasse....
Existe-t-il une méthode, ou un autre moyen léger, pour vérifier si une référence est à un objet supprimé? PS - C'est juste une curiosité (dormez bien, pas dans le code de production). Oui, je sais que je peux attraper le ObjectDisposedExceptionen essayant d'accéder à un membre de l'objet....