Lorsque vous passez un objet qui hérite de MarshalByRefObject à un AppDomain différent, GC.Collect() induit par l'AppDomain qui l'a créé ne collecte pas l'objet, à condition que l'objet ne soit pas ancré dans soit AppDomain au moment GC.Collect() appelé?Garbage collecter des objets traversant la frontière AppDomain
[Quand je dis que je veux dire ne s'enracine pas d'accès du code écrit de développeur plus.]
Il semble que l'objet ne se recueillir, mais plutôt se promu à la prochaine génération! Mais si j'arrête de passer l'objet à un diff AppDomain, il est collecté comme prévu.
Est-ce que ce comportement est voulu? Si oui, pourquoi?
Merci les gars,
P.S. Je sais que GC.Collect() dans le code est mauvais pour beaucoup de raisons, j'essaye juste de comprendre comment GC aurait lieu sur MBROs.
FGE, merci! OK, on dirait que même si nous laissons tomber les références au MBROs, l'exécution continue à se maintenir sur les objets via les services de gestion de bail et de durée de vie. Je vais en lire plus sur ces domaines. – RanC
Ce lien peut-être? http://msdn.microsoft.com/en-us/library/23bk23zc(v=vs.85).aspx – Spook