IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Mobile .NET Discussion :

[C#] Erreur AppDomain.Unload


Sujet :

Windows Mobile .NET

  1. #1
    tsp
    tsp est déconnecté
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 82
    Points : 54
    Points
    54
    Par défaut [C#] Erreur AppDomain.Unload
    Bonjour,

    J'ai une programme de lancement A qui permet de lancer plusieurs applications différentes (1, 2 et 3). Seule une des applications peut être lancée à la fois.

    Afin de pouvoir liberer la mémoire utile aux l'applications (1, 2 ou 3), j'ai créé un domaine d'application et j'exécute mon application dans ce nouveau domaine. De ce fait, une fois l'application fermée, je peux décharger mon domaine pour liberer la mémoire.

    Mon code est le suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    // déclaration de variable appDomain
    private static AppDomain domaineApplis;
    ...
     
    // lancement d'une application
    // sApplication : chemin de l'application
    private void lancer(String sApplication)
    {
       ...
       // lancement de l'application
       maForm.domaineApplis = AppDomain.CreateDomain("APPLICATION", null);
       try
       {
            maForm_mesir.domaineApplis.ExecuteAssembly(sApplication+"/init.exe",  
                                                     null, param);
            this.Refresh();
        }
        finally
        {
             // Déchargement du domaine d'application
             AppDomain.Unload(maForm.domaineApplis);
        }
        ...
    }
    Cependant, certaines applications provoquent une Exception CannotUnloadAppDomainException lors du déchargement.

    Je ne sais pas si ça à un rapport mais les applications qui provoquent cette exception utilisent des DLL communes à mon programme de lancement A.

    Comment puis-je éviter cette exception ?

    Merci d'avance

  2. #2
    tsp
    tsp est déconnecté
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 82
    Points : 54
    Points
    54
    Par défaut
    Je me réponds à moi même.

    Finalement, j'ai résolu mon problème. J'utilise dans mes applications (1, 2 ou 3) un composant que j'ai développé. Dans ce composant, j'avais juste oublié de libèrer une ressource externe dans le Dispose ce qui empêchait la dll de ce composant de se décharger.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Erreur pendant le déchargement d'appdomain
    Par asoka13 dans le forum C++/CLI
    Réponses: 1
    Dernier message: 20/05/2011, 22h31
  2. Erreur déchargement appdomain
    Par asoka13 dans le forum Windows Forms
    Réponses: 0
    Dernier message: 13/03/2011, 16h58
  3. erreur de syntaxe avec unload et select
    Par jerry tekobon dans le forum Informix
    Réponses: 4
    Dernier message: 10/06/2009, 20h41
  4. erreur de syntaxe avec unload et select
    Par jerry tekobon dans le forum Langage SQL
    Réponses: 4
    Dernier message: 03/06/2009, 10h47
  5. [Kylix] Erreur objet
    Par Anonymous dans le forum EDI
    Réponses: 1
    Dernier message: 22/03/2002, 09h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo