Akka.Net:
为什么 actorOf 函数 NOT 需要一个以 Actor< _> 作为参数的函数输入?
似乎 actorOf2 功能需要 Actor< _> 参数。
调用这些函数的上下文如下:
let consoleWriterActor = spawn myActorSystem "consoleWriterActor" (actorOf Actors.consoleWriterActor)
let consoleReaderActor = spawn myActorSystem "consoleReaderActor" (actorOf2 (Actors.consoleReaderActor consoleWriterActor))
let consoleReaderActor (consoleWriter: IActorRef) (mailbox: Actor<_>) message =
...
let consoleWriterActor message =
...
actorOf 的签名如下:
('Message -> unit) -> Actor<Message> -> Cont<'Message,'Returned>
actorOf2 的签名如下:
(Actor<Message> -> 'Message -> unit) -> Actor<Message> -> Cont<'Message,'Returned>
结论:
我是Akka.net的新手。 因此,我不明白为什么“演员&lt; _&gt;”参数(我相信它代表一个邮箱)对于actorOf函数没用。
答案 0 :(得分:0)
actorOf2
函数采用Actor<_>
参数,该参数表示一个actor执行上下文(来自F#MailboxProcessor
,它通常称为邮箱)。它允许诸如更改actor生命周期,创建子actor或与消息发送者通信之类的事情。
然而,有时您可能想要创建actor,它被设计为用作数据的简单接收器,即处理消息并将结果推送到某些外部服务。这是actorOf
可能有用的地方。