AppDomain.卸载问题
本文关键字:问题 卸载 AppDomain | 更新日期: 2023-09-27 18:01:15
调用appdomain.Unload(name(方法时是否卸载appdomain。或者它标记下一个垃圾收集。我有以下情况AppDomains的集合。ListApp从ListApp卸载特定域,例如d1卸载d1后立即再次创建域d1并将其添加到ListApp中当我使用d1.CreateInstanceAndUnwrap((方法时,它抛出异常"试图访问卸载的应用程序域">
public static IDictionary<object, AppDomain> LoadedDomains { get; internal set; }
private static void Load(object key)
{
if (!LoadedDomains.Contains(key))
{
AppDomain domain = AppDomain.CreateDomain("t");
LoadedDomains.Add(key, domain);
}
}
private static void UnLoad(object key)
{
if (LoadedDomains.Contains(key))
{
AppDomain.Unload(LoadedDomains(key));
LoadedDomains.Remove(key);
}
}
private static void Execute()
{
object key = new object();
Load(key);
Unload(key);
Load(key);
MyObject myobj= LoadedDomains[key].CreateInstance("asName", "type");
}
这听起来像是在描述一个多线程问题,而不是垃圾收集问题,因为在您的代码中,它试图在卸载域之后,但在创建新域并将其分配给变量之前访问域。
Unload同步卸载有问题的AppDomain,如果无法卸载该域,则会引发异常。
需要更多代码来进一步帮助。。。
我在代码中发现了问题。正在卸载域,但不刷新词典。