savez-vous s'il existe une procédure qui soit appelée lorsque que le
compteur de référence d'une instance de classe tombe à zéro (donc à
priori quand l'instance n'est plus utilisée où que ce soit et qu'elle
sera libérée par le GC)?
le but étant de permettre à la classe de faire une action particulière
lorsqu'elle détecte qu'on aura plus besoin d'elle (libération de
certaines ressources) sans que le programmeur qui utilise cette classe
soit obligé de faire lui même une gestion fastidieuse pour savoir s'il
peut faire un dispose
à moins (et c'est possible parce que j'ai pas tout compris) que le
paramètre Disposing du Dispose serve justement à ça: que le dispose est
appelé systématiquement à chaque fois qu'une variable passe "out of
scope" avec le paramètre Disposing à false tant qu'il reste des
variables "not out of scope" et passé à true dans le cas où c'est la
dernière variable qui passe "out of scope"?
--
*/Teträm/*
http://www.tetram.info
"Après ton vomi, ne remange pas tout, laisses-en pour tes mouches" -
Proverbe Troll
L'ensemble du framework .NET a les même contraintes fonctionnelles (utilisation de ressources au bon moment, etc;..), et le bon pattern est IDisposable. La documentation de IDisposable me semble tout à fait claire sur le sujet.
Il faut que vous construisiez vos classes autour de ce pattern, et que vous indiquiez au programmeur appelant votre code de libérer les ressources en appelant Dispose ou en utilisant la directive "using" (en C#). L'ensemble des objets de GDI+ par exemple est documenté de cette façon. Si le programmeur oublie d'appeler Dispose sur un Pen ou un Brush, il aura des problèmes. Dans votre cas, c'est la même chose.
donc j'ai plus qu'à croiser les doigts ok merci bien
-- */Teträm/* http://www.tetram.info
"Mange d'abord, defeque ensuite: tu réfléchiras plus tard" - Proverbe Troll
/_Simon Mourier [MS]_ a émis l'idée suivante/ :
L'ensemble du framework .NET a les même contraintes fonctionnelles
(utilisation de ressources au bon moment, etc;..), et le bon pattern est
IDisposable. La documentation de IDisposable me semble tout à fait claire sur
le sujet.
Il faut que vous construisiez vos classes autour de ce pattern, et que vous
indiquiez au programmeur appelant votre code de libérer les ressources en
appelant Dispose ou en utilisant la directive "using" (en C#). L'ensemble des
objets de GDI+ par exemple est documenté de cette façon. Si le programmeur
oublie d'appeler Dispose sur un Pen ou un Brush, il aura des problèmes. Dans
votre cas, c'est la même chose.
donc j'ai plus qu'à croiser les doigts
ok merci bien
--
*/Teträm/*
http://www.tetram.info
"Mange d'abord, defeque ensuite: tu réfléchiras plus tard" - Proverbe
Troll
L'ensemble du framework .NET a les même contraintes fonctionnelles (utilisation de ressources au bon moment, etc;..), et le bon pattern est IDisposable. La documentation de IDisposable me semble tout à fait claire sur le sujet.
Il faut que vous construisiez vos classes autour de ce pattern, et que vous indiquiez au programmeur appelant votre code de libérer les ressources en appelant Dispose ou en utilisant la directive "using" (en C#). L'ensemble des objets de GDI+ par exemple est documenté de cette façon. Si le programmeur oublie d'appeler Dispose sur un Pen ou un Brush, il aura des problèmes. Dans votre cas, c'est la même chose.
donc j'ai plus qu'à croiser les doigts ok merci bien
-- */Teträm/* http://www.tetram.info
"Mange d'abord, defeque ensuite: tu réfléchiras plus tard" - Proverbe Troll
Guillaume Davion
Un article très clair sur le fonctionnement du garbage collector (en anglais) :