Akka.Net中Untyped Actor中的Async await行为

3

我在Windows 10环境下使用Akka.Net 1.4.1。

我在Untyped Actor中使用异步等待任务,目前没有遇到任何问题。正如预期的一样,在OnReceive方法中等待任务完成后,仅处理当前消息。在完全处理完一个消息之前,不会开始同一Actor的并行消息处理。 然而,我找不到这种行为作为文档记录。大多数帖子都谈论使用ReceiveAsync来实现此行为。

有人可以确认在Akka.Net 1.4.1版本后,在Untyped Actors的OnReceive方法中使用Async / Await的行为吗?

1个回答

3
根据我的理解,OnReceive方法不是设计用于异步处理的。
如果你查看该方法本身的签名:
void OnReceive(object message)

相反,它返回一个 void 而不是一个 Task

另一方面,ReceiveAsync 接收一个异步处理程序:

void ReceiveAsync<T>(Func<T, IActorContext, Task> handler, Predicate<T> shouldHandle = null);

如需更多信息,请查阅本文


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接