-1
votes

Comment se débarrasser de "objet" objet "peut être éliminé plus d'une fois dans la méthode"

J'analyse du code à l'aide de Visual Studio Tool et je reçois ce message:

objet 'filtream' peut être disposé plus d'une fois dans la méthode 'bitmapformat.writebitmap (octet [], int, int)'. Pour éviter de générer une méthode.ObjectDisposedExceptionException, vous ne devez pas appeler plus d'une fois sur un objet.

J'ai essayé d'appelé expiré explicitement sur l'objet, mais pas en vain.

Ceci est la méthode: xxx

si je supprime Le ESSAYEZ enfin bloc, le même se produit. Même si j'utilise en utilisant la déclaration .

Comment puis-je l'éviter?


5 commentaires

Je vote pour fermer cette question comme off-sujets car cela a tant de Duplicats Je ne peux même pas en choisir un.


Vous êtes disposé deux fois. filtream.close () est Efficiel identique à celui filtream.close () .


binarywriter disposera du flux sous-jacent. Quel est votre filestream


DUPLIQUE POSSIBLE DE "" L'objet peut être éliminé plus d'une fois "


Non liée: essayez d'utiliser le "Utilisation" - déclaration


3 Réponses :


0
votes

Essayez de vous débarrasser de cette ligne. Vous appelez éliminer enfin bloc qui fonctionnera toujours. Afin que vous puissiez supprimer cette ligne.


0 commentaires

0
votes

Dans le cas spécifique d'un filtream , vous n'avez pas besoin de le disposer pour fermer le fichier, il vous suffit d'utiliser la méthode de fermeture.


0 commentaires

0
votes

Cela peut arriver parce que vous essayez potentiellement d'exécuter

filtream.close () , et

filtream.dispose ()

Il n'ya pas de point à l'aide de votre cas, vous pouvez simplement utiliser la méthode de près. La méthode de fermeture exécutera la méthode de disposer avec la «vraie» valeur.

Veuillez regarder cette exploration de 'filtream.close ()' Méthode:

https://msdn.microsoft. COM / EN-US / Bibliothèque / AA328800 (v = vs.71) .aspx

Cette implémentation d'appels fermés La méthode d'élimination passant une valeur réelle.


0 commentaires