如何监控 actor 系统终止

How to monitor actor system termination

我已经创建了根演员:

        topicRootActor = actorSystem.ActorOf(actorSystem.DI().Props<RootActor>(), typeof(RootActor).Name + '.' + topic);
        topicRootActor.Tell(initMessage);

当它因为永久连接失败或其他原因停止时,我想停止应用程序。

我的想法是停止 root actor,然后在 PostStop 覆盖中调用 Context.System.Terminate。问题是 ActorSystem 的创建者如何知道 actor 系统终止?

我相信你应该可以使用 actorSystem.WhenTerminated,它是 ActorSystem 上的 属性 而 returns 是 Task,它在 ActorSystem 关闭时完成.

如果你继续或等待它,你应该能够干净地关闭你的应用程序。