【问题标题】:How do I obtain a list of the application domains my application has created?如何获取我的应用程序创建的应用程序域列表?
【发布时间】:2008-10-05 05:21:33
【问题描述】:

我有一个服务应用程序,它在用于长时间运行的任务的过程中创建 AppDomain。我一直在通过将它们存储在具有唯一 ID 的 Hashtable 中来跟踪它们。

任务完成后,服务应用程序会卸载分配给该任务的 AppDomain,然后将其从 appdomain Hashtable 中删除。

纯粹从健全性检查的角度来看,有没有一种方法可以查询 CLR 以查看创建应用程序域仍加载哪些应用程序域(即,我可以将跟踪 Hashtable 与 CLR 实际看到的内容进行比较) ?

【问题讨论】:

    标签: c# .net clr appdomain


    【解决方案1】:

    AFAIK,您需要保留自己的列表 - 就像您现在一样。

    【讨论】:

    • 是的......经过几个月的研究和研究。这似乎是正确的方式。
    【解决方案2】:

    如果您使用非托管 API,您可以设置一个在每次创建 AppDomain 时调用的 DomainManager,您会发现许多部分都在创建自己的 AppDomain,例如WCF。详细解释在Customizing the Microsoft .NET Framework Common Language Runtime

    另一条路线是使用调试 API。

    【讨论】:

    • Giulio - 感谢您的回答并感谢您提供本书的链接。不敢相信我错过了那个,看起来很迷人。
    【解决方案3】:

    我想你也想看看这篇文章 - “Working with Application Domains in WPF”。

    【讨论】:

    猜你喜欢
    • 2011-01-04
    • 1970-01-01
    • 2011-02-08
    • 1970-01-01
    • 1970-01-01
    • 2012-11-13
    • 1970-01-01
    • 2015-07-21
    • 2014-02-15
    相关资源
    最近更新 更多