Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
AlexC
Me.dispose
.Dispose indique au GC ( garbage collector ) que l'objet est détruit et qu'il peut libérer l'espace mémoire utilisé par cette objet si il en a besoin.
dans msdn : Appelez Dispose quand vous n'avez plus besoin d'utiliser le Control. La méthode Dispose rend le Control inutilisable. Après l'appel de cette méthode, vous devez libérer toutes les références au contrôle afin que la mémoire occupée par ce dernier puisse être récupérée lors de l'opération garbage collection.
Remarque Appelez toujours Dispose avant de libérer votre dernière référence au Control. Sinon, les ressources utilisées par le Control ne sont pas libérées tant que l'opération garbage collection n'a pas appelé le destructeur de l'objet Control. Pour plus d'informations sur les méthodes qui sont couramment substituées lors de la création de contrôles serveur personnalisés, consultez Méthodes dans les contrôles serveur ASP.NET.
.Close Libère luit uniquement les ressources des objets contenu dans la form, mais pas les ressources de l'objet lui meme
dans msdn :
Une fois un formulaire fermé, toutes les ressources créées dans cet objet sont libérées et le formulaire est supprimé. Pour empêcher la fermeture d'un formulaire au moment de l'exécution, pourvoyez à la gestion de l'événement Closing et affectez la méthode de gestion de l'événement à la propriété Cancel du CancelEventArgs passé comme paramètre. Si le formulaire que vous fermez est le formulaire de démarrage de votre application, votre application se termine.
"Cyril" a écrit dans le message de news:
J'ai entendu tout et son contraire sur par mal de forum concernant ce sujet.
Pour fermer une fenêtre et libérer les ressources, qu'elle est la meilleur solution.
Me.close Me.dispose
Certain prétende que close appelle dispose, est-ce vrai ?
???
Merci
Me.dispose
.Dispose indique au GC ( garbage collector ) que l'objet est détruit et
qu'il peut libérer l'espace mémoire utilisé par cette objet si il en a
besoin.
dans msdn :
Appelez Dispose quand vous n'avez plus besoin d'utiliser le Control. La
méthode Dispose rend le Control inutilisable. Après l'appel de cette
méthode, vous devez libérer toutes les références au contrôle afin que la
mémoire occupée par ce dernier puisse être récupérée lors de l'opération
garbage collection.
Remarque Appelez toujours Dispose avant de libérer votre dernière
référence au Control. Sinon, les ressources utilisées par le Control ne sont
pas libérées tant que l'opération garbage collection n'a pas appelé le
destructeur de l'objet Control.
Pour plus d'informations sur les méthodes qui sont couramment substituées
lors de la création de contrôles serveur personnalisés, consultez Méthodes
dans les contrôles serveur ASP.NET.
.Close Libère luit uniquement les ressources des objets contenu dans la
form, mais pas les ressources de l'objet lui meme
dans msdn :
Une fois un formulaire fermé, toutes les ressources créées dans cet objet
sont libérées et le formulaire est supprimé. Pour empêcher la fermeture d'un
formulaire au moment de l'exécution, pourvoyez à la gestion de l'événement
Closing et affectez la méthode de gestion de l'événement à la propriété
Cancel du CancelEventArgs passé comme paramètre. Si le formulaire que vous
fermez est le formulaire de démarrage de votre application, votre
application se termine.
"Cyril" <Cyril@discussions.microsoft.com> a écrit dans le message de news:
195DF703-0739-4261-8716-2FD046254068@microsoft.com...
J'ai entendu tout et son contraire sur par mal de forum concernant ce
sujet.
Pour fermer une fenêtre et libérer les ressources, qu'elle est la meilleur
solution.
Me.close
Me.dispose
Certain prétende que close appelle dispose, est-ce vrai ?
.Dispose indique au GC ( garbage collector ) que l'objet est détruit et qu'il peut libérer l'espace mémoire utilisé par cette objet si il en a besoin.
dans msdn : Appelez Dispose quand vous n'avez plus besoin d'utiliser le Control. La méthode Dispose rend le Control inutilisable. Après l'appel de cette méthode, vous devez libérer toutes les références au contrôle afin que la mémoire occupée par ce dernier puisse être récupérée lors de l'opération garbage collection.
Remarque Appelez toujours Dispose avant de libérer votre dernière référence au Control. Sinon, les ressources utilisées par le Control ne sont pas libérées tant que l'opération garbage collection n'a pas appelé le destructeur de l'objet Control. Pour plus d'informations sur les méthodes qui sont couramment substituées lors de la création de contrôles serveur personnalisés, consultez Méthodes dans les contrôles serveur ASP.NET.
.Close Libère luit uniquement les ressources des objets contenu dans la form, mais pas les ressources de l'objet lui meme
dans msdn :
Une fois un formulaire fermé, toutes les ressources créées dans cet objet sont libérées et le formulaire est supprimé. Pour empêcher la fermeture d'un formulaire au moment de l'exécution, pourvoyez à la gestion de l'événement Closing et affectez la méthode de gestion de l'événement à la propriété Cancel du CancelEventArgs passé comme paramètre. Si le formulaire que vous fermez est le formulaire de démarrage de votre application, votre application se termine.
"Cyril" a écrit dans le message de news:
J'ai entendu tout et son contraire sur par mal de forum concernant ce sujet.
Pour fermer une fenêtre et libérer les ressources, qu'elle est la meilleur solution.
Me.close Me.dispose
Certain prétende que close appelle dispose, est-ce vrai ?
???
Merci
Zazar
Bonjour,
Pour fermer une fenêtre et libérer les ressources, qu'elle est la meilleur solution.
Me.close Me.dispose
Certain prétende que close appelle dispose, est-ce vrai ?
Si la fenêtre n'est pas modale c'est vrai.
Sur une fenêtre modale, il faut appeler Dispose aprés avoir appeler Close.
Sur une fenêtre non modale, on peut appeler l'une ou l'autre des méthodes, mais elles ne sont pas totalement interchangeables : Close va lever un évenement et peut être annulée.
Dans ce genre de situation, si une classe expose une méthode Dispose et une méthode y ressemblant (Close par exemple) et que vous n'êtes pas sûr que la seconde méthode appelle la première, vous pouvez appeler les 2 dans cet ordre :
myObject.Close();
myObject.Dispose();
En effet une implémentation correcte de Dispose() ne doit pas lever d'exception si la méthode a déjà été appelée.
--
Zazar
Bonjour,
Pour fermer une fenêtre et libérer les ressources, qu'elle est la meilleur
solution.
Me.close
Me.dispose
Certain prétende que close appelle dispose, est-ce vrai ?
Si la fenêtre n'est pas modale c'est vrai.
Sur une fenêtre modale, il faut appeler Dispose aprés avoir appeler Close.
Sur une fenêtre non modale, on peut appeler l'une ou l'autre des méthodes,
mais elles ne sont pas totalement interchangeables : Close va lever un
évenement et peut être annulée.
Dans ce genre de situation, si une classe expose une méthode Dispose et une
méthode y ressemblant (Close par exemple) et que vous n'êtes pas sûr que la
seconde méthode appelle la première, vous pouvez appeler les 2 dans cet
ordre :
myObject.Close();
myObject.Dispose();
En effet une implémentation correcte de Dispose() ne doit pas lever
d'exception si la méthode a déjà été appelée.
Pour fermer une fenêtre et libérer les ressources, qu'elle est la meilleur solution.
Me.close Me.dispose
Certain prétende que close appelle dispose, est-ce vrai ?
Si la fenêtre n'est pas modale c'est vrai.
Sur une fenêtre modale, il faut appeler Dispose aprés avoir appeler Close.
Sur une fenêtre non modale, on peut appeler l'une ou l'autre des méthodes, mais elles ne sont pas totalement interchangeables : Close va lever un évenement et peut être annulée.
Dans ce genre de situation, si une classe expose une méthode Dispose et une méthode y ressemblant (Close par exemple) et que vous n'êtes pas sûr que la seconde méthode appelle la première, vous pouvez appeler les 2 dans cet ordre :
myObject.Close();
myObject.Dispose();
En effet une implémentation correcte de Dispose() ne doit pas lever d'exception si la méthode a déjà été appelée.
--
Zazar
Zazar
Bonjour,
.Dispose indique au GC ( garbage collector ) que l'objet est détruit et qu'il peut libérer l'espace mémoire utilisé par cette objet si il en a besoin.
Pas tout à fait. La méthode Dispose est censée libérer toutes les ressources non managées utilisées par l'objet. Le GC ne s'occupe pas de savoir si la méthode Dispose a été appelée ou non, il ne s'occupe que de regarder s'il existe encore au moins une référence vers l'objet.
--
Zazar
Bonjour,
.Dispose indique au GC ( garbage collector ) que l'objet est détruit et
qu'il peut libérer l'espace mémoire utilisé par cette objet si il en a
besoin.
Pas tout à fait. La méthode Dispose est censée libérer toutes les ressources
non managées utilisées par l'objet. Le GC ne s'occupe pas de savoir si la
méthode Dispose a été appelée ou non, il ne s'occupe que de regarder s'il
existe encore au moins une référence vers l'objet.
.Dispose indique au GC ( garbage collector ) que l'objet est détruit et qu'il peut libérer l'espace mémoire utilisé par cette objet si il en a besoin.
Pas tout à fait. La méthode Dispose est censée libérer toutes les ressources non managées utilisées par l'objet. Le GC ne s'occupe pas de savoir si la méthode Dispose a été appelée ou non, il ne s'occupe que de regarder s'il existe encore au moins une référence vers l'objet.
--
Zazar
Cyril
Merci beaucoup pour vos réponses. J'y vois beaucoup plus claire maintenant. Et si j'en crois ce que je viens de lire, la bonne utilisation de close et de dispose est très importante si on ne veut pas "noyer" la mémoire du system.
Merci beaucoup pour vos réponses. J'y vois beaucoup plus claire maintenant.
Et si j'en crois ce que je viens de lire, la bonne utilisation de close et
de dispose est très importante si on ne veut pas "noyer" la mémoire du system.
Merci beaucoup pour vos réponses. J'y vois beaucoup plus claire maintenant. Et si j'en crois ce que je viens de lire, la bonne utilisation de close et de dispose est très importante si on ne veut pas "noyer" la mémoire du system.
Zazar
Bonjour
Merci beaucoup pour vos réponses. J'y vois beaucoup plus claire maintenant. Et si j'en crois ce que je viens de lire, la bonne utilisation de close et de dispose est très importante si on ne veut pas "noyer" la mémoire du system.
Elle ne sera pas "noyée", si vous ne faîtes ni de Close ni de Dispose, et que vous n'avez plus de réfèrence à votre Form, le GC libérera les ressources. Par contre, on ne peut pas prédire quand ça arrivera, ça peut être 1 heure aprés que la feuille ne soit plus utilisée comme 2 mois aprés. Ca se fera de toute manière si la mémoire disponible commence à être faible et que vous faîtes une allocation mémoire (en créant un objet). La mémoire n'est donc pas si problèmatique que ça (ça ne veut pas dire que c'est bon on peut se dispenser de faire des Dispose!). Ce qui est plus ennuyeux c'est si on utilise un objet qui utilise une ressource exclusive ou disponible en quantité limitée (autre que la mémoire). Exemple de ressource exclusive : vous ouvrez un fichier et vous ne le refermez pas. Le GC finira par le fermer, mais tant qu'il ne l'a pas fait, aucun process (y compris celui en cours) ne pourra y accéder de nouveau. Exemple de ressource disponible en quantité limitée : les ports (au sens IP) : il n'y en a que 65535, si vous ouvrez 65535 connexions et que vous n'en fermez aucune, plus aucun process ne pourra établir de connexion.
Pour les form, je ne crois pas qu'on se trouve dans un cas ou un autre (les handles sont limités mais je pense qu'avant qu'on les ait tous utilisés on aura largement utilisé toute la mémoire disponible). Ce n'est donc pas si catastrophique, c'est juste crade comme manière de programmer.
--
Zazar
Bonjour
Merci beaucoup pour vos réponses. J'y vois beaucoup plus claire
maintenant.
Et si j'en crois ce que je viens de lire, la bonne utilisation de close et
de dispose est très importante si on ne veut pas "noyer" la mémoire du
system.
Elle ne sera pas "noyée", si vous ne faîtes ni de Close ni de Dispose, et
que vous n'avez plus de réfèrence à votre Form, le GC libérera les
ressources. Par contre, on ne peut pas prédire quand ça arrivera, ça peut
être 1 heure aprés que la feuille ne soit plus utilisée comme 2 mois aprés.
Ca se fera de toute manière si la mémoire disponible commence à être faible
et que vous faîtes une allocation mémoire (en créant un objet). La mémoire
n'est donc pas si problèmatique que ça (ça ne veut pas dire que c'est bon on
peut se dispenser de faire des Dispose!). Ce qui est plus ennuyeux c'est si
on utilise un objet qui utilise une ressource exclusive ou disponible en
quantité limitée (autre que la mémoire). Exemple de ressource exclusive :
vous ouvrez un fichier et vous ne le refermez pas. Le GC finira par le
fermer, mais tant qu'il ne l'a pas fait, aucun process (y compris celui en
cours) ne pourra y accéder de nouveau.
Exemple de ressource disponible en quantité limitée : les ports (au sens IP)
: il n'y en a que 65535, si vous ouvrez 65535 connexions et que vous n'en
fermez aucune, plus aucun process ne pourra établir de connexion.
Pour les form, je ne crois pas qu'on se trouve dans un cas ou un autre (les
handles sont limités mais je pense qu'avant qu'on les ait tous utilisés on
aura largement utilisé toute la mémoire disponible). Ce n'est donc pas si
catastrophique, c'est juste crade comme manière de programmer.
Merci beaucoup pour vos réponses. J'y vois beaucoup plus claire maintenant. Et si j'en crois ce que je viens de lire, la bonne utilisation de close et de dispose est très importante si on ne veut pas "noyer" la mémoire du system.
Elle ne sera pas "noyée", si vous ne faîtes ni de Close ni de Dispose, et que vous n'avez plus de réfèrence à votre Form, le GC libérera les ressources. Par contre, on ne peut pas prédire quand ça arrivera, ça peut être 1 heure aprés que la feuille ne soit plus utilisée comme 2 mois aprés. Ca se fera de toute manière si la mémoire disponible commence à être faible et que vous faîtes une allocation mémoire (en créant un objet). La mémoire n'est donc pas si problèmatique que ça (ça ne veut pas dire que c'est bon on peut se dispenser de faire des Dispose!). Ce qui est plus ennuyeux c'est si on utilise un objet qui utilise une ressource exclusive ou disponible en quantité limitée (autre que la mémoire). Exemple de ressource exclusive : vous ouvrez un fichier et vous ne le refermez pas. Le GC finira par le fermer, mais tant qu'il ne l'a pas fait, aucun process (y compris celui en cours) ne pourra y accéder de nouveau. Exemple de ressource disponible en quantité limitée : les ports (au sens IP) : il n'y en a que 65535, si vous ouvrez 65535 connexions et que vous n'en fermez aucune, plus aucun process ne pourra établir de connexion.
Pour les form, je ne crois pas qu'on se trouve dans un cas ou un autre (les handles sont limités mais je pense qu'avant qu'on les ait tous utilisés on aura largement utilisé toute la mémoire disponible). Ce n'est donc pas si catastrophique, c'est juste crade comme manière de programmer.