Bonjour,
quelle est la m=E9thode =E0 appeller pour mettre fin =E0 une=20
application C# Pocket PC ?
Doit-on lib=E9rer toutes les ressources avant ou est-ce=20
automatique ?
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
De Simone Alessandro
Stéphane ANDRE a écrit :
Bonjour, quelle est la méthode à appeller pour mettre fin à une application C# Pocket PC ? Doit-on libérer toutes les ressources avant ou est-ce automatique ?
Merci d'avance
De la même manière que sur un pc normal :-) Tu dois mettre fin à la fonction main. Si tu utilises des fenêtres, tu as Application.run(...) qui démarre une boucle de gestions des messages. Pour arrêter cette fonction tu peux faire appel à Application.Exit();
Alors pour ce qui est des ressources c'est un peu plus compliqué. Quand un programme quitte, les ressources sont récupérées. Le problème est que certaines ressources ont des finalizers. Ces finalizers permettent de faire des opérations supplémentaires lorsque l’objet est récupéré (comme libérer des ressources). Il n’est pas garanti que ces finalizers soit appelés.
En effet lors de la fermeture de ton programme :
- il reste des objets que tu peux atteindre. Par exemple si un objet est encore référencé depuis un autre thread ... Ou que l'objet a été justement créé lors de la fermeture du programme.
Pour ces variables, comme elles sont encore joignables, le garbage collector ne les prend pas en compte et donc n'appelle pas le finalizer
- il reste des objets non référencés. En effet, ce n'est pas parce qu'un objet est non référencé qu'il sera directement détruit par le garbage collector. Et pour ces objets qui n'ont pas encore été libérés par le garbage collector, eux non plus ne verront jamais leur finalizer être exécuté.
Donc tu dois bien faire attention à appeler dispose/close sur les objets concernés. Quand tu appelles Application.Exit(); toutes les fenêtres se ferment et donc les fonctions dispose() sont appelées sur tous tes contrôles.
Pour plus d’information voir l’article sur le GC : http://msdn.microsoft.com/msdnmag/issues/1100/gci/
Bonne soirée :-)
-- Alessandro De Simone email : (remove ".IHATESPAM")
Win32
Stéphane ANDRE a écrit :
Bonjour,
quelle est la méthode à appeller pour mettre fin à une
application C# Pocket PC ?
Doit-on libérer toutes les ressources avant ou est-ce
automatique ?
Merci d'avance
De la même manière que sur un pc normal :-)
Tu dois mettre fin à la fonction main.
Si tu utilises des fenêtres, tu as Application.run(...) qui démarre une
boucle de gestions des messages. Pour arrêter cette fonction tu peux
faire appel à Application.Exit();
Alors pour ce qui est des ressources c'est un peu plus compliqué.
Quand un programme quitte, les ressources sont récupérées. Le problème
est que certaines ressources ont des finalizers. Ces finalizers
permettent de faire des opérations supplémentaires lorsque l’objet est
récupéré (comme libérer des ressources).
Il n’est pas garanti que ces finalizers soit appelés.
En effet lors de la fermeture de ton programme :
- il reste des objets que tu peux atteindre.
Par exemple si un objet est encore référencé depuis un autre thread ...
Ou que l'objet a été justement créé lors de la fermeture du programme.
Pour ces variables, comme elles sont encore joignables, le garbage
collector ne les prend pas en compte et donc n'appelle pas le finalizer
- il reste des objets non référencés.
En effet, ce n'est pas parce qu'un objet est non référencé qu'il sera
directement détruit par le garbage collector.
Et pour ces objets qui n'ont pas encore été libérés par le garbage
collector, eux non plus ne verront jamais leur finalizer être exécuté.
Donc tu dois bien faire attention à appeler dispose/close sur les objets
concernés.
Quand tu appelles Application.Exit(); toutes les fenêtres se ferment et
donc les fonctions dispose() sont appelées sur tous tes contrôles.
Pour plus d’information voir l’article sur le GC :
http://msdn.microsoft.com/msdnmag/issues/1100/gci/
Bonne soirée :-)
--
Alessandro De Simone
email : adesimon.IHATESPAM@ulb.ac.be (remove ".IHATESPAM")
Bonjour, quelle est la méthode à appeller pour mettre fin à une application C# Pocket PC ? Doit-on libérer toutes les ressources avant ou est-ce automatique ?
Merci d'avance
De la même manière que sur un pc normal :-) Tu dois mettre fin à la fonction main. Si tu utilises des fenêtres, tu as Application.run(...) qui démarre une boucle de gestions des messages. Pour arrêter cette fonction tu peux faire appel à Application.Exit();
Alors pour ce qui est des ressources c'est un peu plus compliqué. Quand un programme quitte, les ressources sont récupérées. Le problème est que certaines ressources ont des finalizers. Ces finalizers permettent de faire des opérations supplémentaires lorsque l’objet est récupéré (comme libérer des ressources). Il n’est pas garanti que ces finalizers soit appelés.
En effet lors de la fermeture de ton programme :
- il reste des objets que tu peux atteindre. Par exemple si un objet est encore référencé depuis un autre thread ... Ou que l'objet a été justement créé lors de la fermeture du programme.
Pour ces variables, comme elles sont encore joignables, le garbage collector ne les prend pas en compte et donc n'appelle pas le finalizer
- il reste des objets non référencés. En effet, ce n'est pas parce qu'un objet est non référencé qu'il sera directement détruit par le garbage collector. Et pour ces objets qui n'ont pas encore été libérés par le garbage collector, eux non plus ne verront jamais leur finalizer être exécuté.
Donc tu dois bien faire attention à appeler dispose/close sur les objets concernés. Quand tu appelles Application.Exit(); toutes les fenêtres se ferment et donc les fonctions dispose() sont appelées sur tous tes contrôles.
Pour plus d’information voir l’article sur le GC : http://msdn.microsoft.com/msdnmag/issues/1100/gci/
Bonne soirée :-)
-- Alessandro De Simone email : (remove ".IHATESPAM")
Win32
Stéphane ANDRE
Merci beaucoup Alessandro pour ces informations. Je trouve le forum C# très réactif !
-----Message d'origine----- Stéphane ANDRE a écrit :
Bonjour, quelle est la méthode à appeller pour mettre fin à une application C# Pocket PC ? Doit-on libérer toutes les ressources avant ou est-ce automatique ?
Merci d'avance
De la même manière que sur un pc normal :-) Tu dois mettre fin à la fonction main. Si tu utilises des fenêtres, tu as Application.run(...)
qui démarre une
boucle de gestions des messages. Pour arrêter cette
fonction tu peux
faire appel à Application.Exit();
Alors pour ce qui est des ressources c'est un peu plus
compliqué.
Quand un programme quitte, les ressources sont
récupérées. Le problème
est que certaines ressources ont des finalizers. Ces
finalizers
permettent de faire des opérations supplémentaires
lorsque l'objet est
récupéré (comme libérer des ressources). Il n'est pas garanti que ces finalizers soit appelés.
En effet lors de la fermeture de ton programme :
- il reste des objets que tu peux atteindre. Par exemple si un objet est encore référencé depuis un
autre thread ...
Ou que l'objet a été justement créé lors de la fermeture
du programme.
Pour ces variables, comme elles sont encore joignables,
le garbage
collector ne les prend pas en compte et donc n'appelle
pas le finalizer
- il reste des objets non référencés. En effet, ce n'est pas parce qu'un objet est non
référencé qu'il sera
directement détruit par le garbage collector. Et pour ces objets qui n'ont pas encore été libérés par
le garbage
collector, eux non plus ne verront jamais leur finalizer
être exécuté.
Donc tu dois bien faire attention à appeler
dispose/close sur les objets
concernés. Quand tu appelles Application.Exit(); toutes les
fenêtres se ferment et
donc les fonctions dispose() sont appelées sur tous tes
contrôles.
Pour plus d'information voir l'article sur le GC : http://msdn.microsoft.com/msdnmag/issues/1100/gci/
Bonne soirée :-)
-- Alessandro De Simone email :
(remove ".IHATESPAM")
Win32 .
Merci beaucoup Alessandro pour ces informations.
Je trouve le forum C# très réactif !
-----Message d'origine-----
Stéphane ANDRE a écrit :
Bonjour,
quelle est la méthode à appeller pour mettre fin à une
application C# Pocket PC ?
Doit-on libérer toutes les ressources avant ou est-ce
automatique ?
Merci d'avance
De la même manière que sur un pc normal :-)
Tu dois mettre fin à la fonction main.
Si tu utilises des fenêtres, tu as Application.run(...)
qui démarre une
boucle de gestions des messages. Pour arrêter cette
fonction tu peux
faire appel à Application.Exit();
Alors pour ce qui est des ressources c'est un peu plus
compliqué.
Quand un programme quitte, les ressources sont
récupérées. Le problème
est que certaines ressources ont des finalizers. Ces
finalizers
permettent de faire des opérations supplémentaires
lorsque l'objet est
récupéré (comme libérer des ressources).
Il n'est pas garanti que ces finalizers soit appelés.
En effet lors de la fermeture de ton programme :
- il reste des objets que tu peux atteindre.
Par exemple si un objet est encore référencé depuis un
autre thread ...
Ou que l'objet a été justement créé lors de la fermeture
du programme.
Pour ces variables, comme elles sont encore joignables,
le garbage
collector ne les prend pas en compte et donc n'appelle
pas le finalizer
- il reste des objets non référencés.
En effet, ce n'est pas parce qu'un objet est non
référencé qu'il sera
directement détruit par le garbage collector.
Et pour ces objets qui n'ont pas encore été libérés par
le garbage
collector, eux non plus ne verront jamais leur finalizer
être exécuté.
Donc tu dois bien faire attention à appeler
dispose/close sur les objets
concernés.
Quand tu appelles Application.Exit(); toutes les
fenêtres se ferment et
donc les fonctions dispose() sont appelées sur tous tes
contrôles.
Pour plus d'information voir l'article sur le GC :
http://msdn.microsoft.com/msdnmag/issues/1100/gci/
Bonne soirée :-)
--
Alessandro De Simone
email : adesimon.IHATESPAM@ulb.ac.be
Merci beaucoup Alessandro pour ces informations. Je trouve le forum C# très réactif !
-----Message d'origine----- Stéphane ANDRE a écrit :
Bonjour, quelle est la méthode à appeller pour mettre fin à une application C# Pocket PC ? Doit-on libérer toutes les ressources avant ou est-ce automatique ?
Merci d'avance
De la même manière que sur un pc normal :-) Tu dois mettre fin à la fonction main. Si tu utilises des fenêtres, tu as Application.run(...)
qui démarre une
boucle de gestions des messages. Pour arrêter cette
fonction tu peux
faire appel à Application.Exit();
Alors pour ce qui est des ressources c'est un peu plus
compliqué.
Quand un programme quitte, les ressources sont
récupérées. Le problème
est que certaines ressources ont des finalizers. Ces
finalizers
permettent de faire des opérations supplémentaires
lorsque l'objet est
récupéré (comme libérer des ressources). Il n'est pas garanti que ces finalizers soit appelés.
En effet lors de la fermeture de ton programme :
- il reste des objets que tu peux atteindre. Par exemple si un objet est encore référencé depuis un
autre thread ...
Ou que l'objet a été justement créé lors de la fermeture
du programme.
Pour ces variables, comme elles sont encore joignables,
le garbage
collector ne les prend pas en compte et donc n'appelle
pas le finalizer
- il reste des objets non référencés. En effet, ce n'est pas parce qu'un objet est non
référencé qu'il sera
directement détruit par le garbage collector. Et pour ces objets qui n'ont pas encore été libérés par
le garbage
collector, eux non plus ne verront jamais leur finalizer
être exécuté.
Donc tu dois bien faire attention à appeler
dispose/close sur les objets
concernés. Quand tu appelles Application.Exit(); toutes les
fenêtres se ferment et
donc les fonctions dispose() sont appelées sur tous tes
contrôles.
Pour plus d'information voir l'article sur le GC : http://msdn.microsoft.com/msdnmag/issues/1100/gci/