gpt4 book ai didi

.net - 卸载 AppDomains

转载 作者:行者123 更新时间:2023-12-04 15:57:57 29 4
gpt4 key购买 nike

假设我有 AppDomainA,它启动 AppDomainB。 AppDomainB 然后启动 AppDomainC。

如果在 AppDomainA 中卸载 AppDomainB,AppDomainC 是否也被卸载,或者我必须确保自己处理?

最佳答案

找出答案的最好方法是尝试。下面是创建 AppDomainA 的示例,它创建了 AppDomainB。我们告诉 B 做一些工作,然后卸载 A。

internal class Program
{
private static Timer _timer;
private static void Main(string[] args)
{
var domainA = AppDomain.CreateDomain("AppDomainA");
domainA.DomainUnload += (s, e) => Console.WriteLine("DomainA was unloaded.");
domainA.DoCallBack(() =>
{
var domainB = AppDomain.CreateDomain("AppDomainB");
domainB.DomainUnload += (s, e) => Console.WriteLine("DomainB was unloaded.");
domainB.DoCallBack(() =>
{
_timer = new Timer(o =>
{
Console.WriteLine("Tick from AppDomain: " + AppDomain.CurrentDomain.FriendlyName);
}, null, 0, 1000);
});
});
AppDomain.Unload(domainA);
Application.Run(); //Run a message loop so AppDomainB can keep doing work.
}
}

我们看到我们收到消息 AppDomainA 已卸载,但 B 没有,并且 B 继续工作。我们的结论是您需要确保自己处理这个问题。

关于.net - 卸载 AppDomains,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22713029/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com