【发布时间】:2020-04-26 11:58:12
【问题描述】:
标题几乎说明了一切。如果可能的话,我想从与 Actor 不在同一文件夹中的非 Actor 类调用 Actor 类中的 Action。
【问题讨论】:
标题几乎说明了一切。如果可能的话,我想从与 Actor 不在同一文件夹中的非 Actor 类调用 Actor 类中的 Action。
【问题讨论】:
在演员模型中,您不会对演员“调用动作”。您可以要求某事或告诉某事。
为此,您需要演员的地址,在 akka.net 中您需要 IActorRef。
我不确定您所说的“文件夹”是什么意思,我将列举每个可能的含义和答案:
为了能够向参与者发送消息,您只需要 IActorRef,有多种方法可以管理这些引用,我不会在这里写,因为这取决于您的应用程序架构。
不过,我要提一下,您还可以使用 ActorSystem.ActorSelection 方法来获取位于某个路径的演员的引用,但这不是 推荐,因为它可能很容易被滥用,并可能导致一些不良习惯。它的使用应被视为一项高级功能。
一旦你掌握了演员参考,你就可以从你的非演员类中调用Ask方法,如果你期望一些结果(注意,结果将被包装在一个你必须设法检索结果)。
如果您不期望得到答案(或者如果您不关心响应),您可以调用 Tell 方法。
您必须将要发送给参与者的消息传递给这两种方法。
最后,一旦演员收到您的消息,您的消息将最终被处理,然后演员将执行其设计的任何操作。
如果您还没有这样做,bootcamp 是学习 akka.net 基础的好方法。
【讨论】: