- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
考虑类,利用 Apache Ignite.NET 库
public interface ICluster
{
void Join();
void Leave();
}
public class ApacheIgniteClusterImpl : ICluster
{
private IIgnite Ignite { get; set; }
private int MulticastPort { get; }
private int ThinClientPort { get; }
public ApacheIgniteClusterImpl(int multicastPort = 47401, int thinClientPort = 10800)
{
MulticastPort = multicastPort;
ThinClientPort = thinClientPort;
}
public void Join()
{
if (Ignite != null)
{
return;
}
var configuration = new IgniteConfiguration
{
ClientConnectorConfiguration = new ClientConnectorConfiguration
{
Port = ThinClientPort,
},
DiscoverySpi = new TcpDiscoverySpi
{
IpFinder = new TcpDiscoveryMulticastIpFinder()
{
MulticastPort = MulticastPort,
}
},
JvmOptions = new List<string>()
{
"-DIGNITE_NO_SHUTDOWN_HOOK=true",
},
};
// Start
Ignite = Ignition.Start(configuration);
}
public void Leave()
{
Ignition.Stop(null, true);
Ignite = null;
}
}
通常,在 .NET Standard 中,我们可以 Hook AppDomain.CurrentDomain.ProcessExit
我们可以做清理工作的事件。但是,一旦 JVM 由 Apache Ignite.NET 创建 AppDomain.CurrentDomain.ProcessExit
当我用 kill <pid>
杀死 MacOS 上的控制台应用程序时永远不会被触发.
我在调试时做了一些研究,发现它会在 private static Jvm CreateJvm(IgniteConfiguration cfg, ILogger log)
之后的某个地方发生。已被调用。
知道那里发生了什么,如果有机会我们可以连接到 AppDomain.CurrentDomain.ProcessExit
?
UPD:都不是AppDomain.CurrentDomain.DomainUnload
也不System.Runtime.Loader.AssemblyLoadContext.Unloading
也会起作用。
最佳答案
ProcessExit
is not guaranteed to be called .
我相信 Ignite.NET 与此无关。我已经检查过这个(没有引用或启动 Ignite),如果你强行终止进程,则不会调用处理程序。
关于c# - Apache Ignite.NET 和 AppDomain.CurrentDomain.ProcessExit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52148621/
有一个 EXE,它隐式加载一些 DLL 和其他显式加载 (LoadLibrary)。此 EXE 正在执行其 ExitProcess(剩余进程中的 1 个线程)并作为忙于卸载 DLL 的一部分,例如 A
我正在处理一个错误,在该错误中,代码并不总是在应用程序关闭之前执行。该代码位于 AppDomain.CurrentDomain.DomainUnload 事件的处理程序中。 我找到了一个有同样问题的人
using System; using System.IO; using System.Runtime.Serialization.Formatters.Binary; namespace empty
我想在进程关闭时在库中进行一些清理,DotNet Core 的替代方案是什么?在 .Net Framework 4 中,我使用了 AppDomain.CurrentDomain.ProcessExit
正如标题所示,ProcessProtocol 类上的这两个函数有什么区别?关于什么时候应该使用一种而不是另一种的文档有点稀疏? 我最好寻找一些可以证明这一点的用例示例。 最佳答案 我猜文档在这一点上有
考虑类,利用 Apache Ignite.NET 库 public interface ICluster { void Join(); void Leave(); } public c
我是一名优秀的程序员,十分优秀!