Voila, je me pose quelques questions:
Je ne comprend pas bien tous les concepts de
- Processus
- Domaine d'application
- Assembly
- Modules
Ou pourrais-je trouvé de la doc la dessus.
En fait je crée une appli qui possède un éditeur de macro C#.
Les macros sont créer dynamiquent et chargé dynamiquement.
Mon souci, est que si l'utilisateur a fait une erreur dans sa macro, il est obligé de recompiler sa macro et de rechargé l'assembly. J'ai donc 2 fois l'assembly de charger. L'execution de la macro est plus lente.
Donc je souhaite décharger l'assembly apres son utilisation. Du coup il n'y aura plus de probleme. Pour pouvoir déchargé un assembly il faut que je décharge le domaine d'application. Le probleme est que l'assembly à été chargé dans le domaine principal de l'appli.
Je peux créer un domaine exprès pour la compilation des macros.
Tous cela devrait marché.
Suis-je sur la bonne voie.
Autre question:
Dans ma macro, je souhaite lancer le Garbage Collector. Le souci est que le garbage collector ne lache pas de memoire, il en consomme BIZARRE.
Une fois la macro terminé, si mon appli demande GC:Clean ca marche bien.
Quelqu'un aurait-il une idée pourquoi le garbage collector ne marche pas quand il est appelé a partir de ma dll chargé dynamiquement.
J'ai de gros souci avec la gestion de la memeoire dans les macros???
certaine macro sont gourmande. leur execution prend 600Mo. Une fois que mon appli demande un GC:Clean je récupere 400Mo. C'est enorme.
Partager