akka.net 有没有办法获取或创建演员

akka.net is there a a way to get or create actor

对于我的 actor 层次结构,在我通过几个 actor 处理数据之前,我不知道我需要的所有 actor,所以我正在寻找一种方法来 return 一个现有的 ActorRef 或创建一个新动作。这就是我希望下面的代码在 "my-id-1" 或 return 已经存在的情况下创建一个演员。

Context.ActorOf(MyActor.Props(message), "my-id-1");

如果演员已经存在,上面的代码将(如文档所示)抛出 InvalidActorNameException。我如何在 Akka.net 中完成此操作?

您可以使用 Context.Child(actorName) 方法检查当前演员是否有 child 提供的名称。如果目标演员存在,它将 return 演员参考,如果没有这样的演员,它将 ActorRefs.Nobody

您的代码可能如下所示:

var child = Context.Child(actorName);
if (Equals(child, ActorRefs.Nobody))
    child = Context.ActorOf(MyActor.Props(message), actorName);