我相信您可以在某些给定的Dictionary<AppDomain, bool> 中使用AppDomain 的存储引用组合,其中bool 是加载或卸载,并处理AppDomain.DomainUnload 事件。
Dictionary<AppDomain, bool> appDomainState = new Dictionary<AppDomain, bool>();
AppDomain appDomain = ...; // AppDomain creation
appDomain.DomainUnload += (sender, e) => appDomainState[appDomain] = false;
appDomainState.Add(appDomain, true);
这样您就可以检查AppDomain 是否已卸载:
// "false" is "unloaded"
if(!appDomainState[appDomainReference])
{
}
或者,您可以使用AppDomain.Id 作为键:
Dictionary<int, bool> appDomainState = new Dictionary<int, bool>();
AppDomain appDomain = ...; // AppDomain creation
appDomain.DomainUnload += (sender, e) => appDomainState[appDomain.Id] = false;
appDomainState.Add(appDomain.Id, true);
...if 语句如下所示:
// "false" is "unloaded"
if(!appDomainState[someAppDomainId])
{
}