哪种 actor.Tell 方法更可取,为什么?

Which actor.Tell method is preferable and why?

我想知道默认情况下应该使用哪种 Tell 方法?

文档位于

http://getakka.net/docs/working-with-actors/sending-messages

提示 Tell(message, sender) 是发送消息的首选方式,但是查看 Akka.Net 代码,似乎 Tell(message) 无论如何都会调用两个参数版本并填充发件人字段自动地。

除了使用 Tell 的两个参数版本(更少的 ifs)调用更简单的代码之外,还有其他原因为什么应该使用它而不是单个参数版本(从 actor 内部调用时)?

我倾向于以完成手头任务所需的最少依赖项来调用事物。

除此之外。您所指的文章实际上是在说支持 Tell over Ask<>。我不认为其目的是指定更适合使用哪种重载。通常您会使用 Sender ,因为您希望响应转到不同的演员。

调用 Tell(blah, Self) 似乎非常多余,这可能就是存在过载的原因。您需要注意的是,当您从一个您没有从测试中引用 Self 或合适的 Sender EG 的地方进行讲述时。

另一个常见的场景是在服务层,在这里(即系统的表面)如果需要同步响应,你会经常发现 Ask<> 是合适的。那篇文章的重点是指出反应式系统通常不想同步(基于请求),所以你应该在整个过程中都有基于告诉的路径(例如,在 web 上下文中到 Rx 集线器)