我如何停止一个演员没有等待当前消息完成

本文关键字:等待 消息 何停止 一个 | 更新日期: 2023-09-27 18:15:04

我想知道我是否可以停止一个演员而不必等待当前消息被处理,或者只是取消它。

这里解释了这样做的方法

https://petabridge.com/blog/how-to-stop-an-actor-akkadotnet/

但是它们都等待当前消息被处理。

Stop() the actor:

在actor完成后立即停止actor处理当前消息。

杀死演员:

这将抛出一个actorkillledexception,该异常将被记录并处理。演员会处理完当前消息后立即停止。

给演员一个毒丸:

参与者将完成处理当前在其邮箱中的消息,然后单击Stop。

我如何停止一个演员没有等待当前消息完成

我想问为什么在actor消息接收中有一个长时间运行的流程。最好的做法是将可能需要一些时间并且希望能够在接收消息时取消的任何代码放入Task中。

参与者将被释放,并能够接受来自上面列出的停止方法之一的消息,并相应地终止任务。

另外,下面页面的第4点显示了一些示例代码https://petabridge.com/blog/top-7-akkadotnet-stumbling-blocks/