0

目前,我派出一群演员来完成一些长期运行的任务。我将它们放入一个列表中,然后调用 Task.WaitAll() 来收集结果。

但是,我想在每个 Actor 完成其任务时收集结果(而不是等待每个 Actor 完成并在最后聚合它)。

我在考虑使用可靠的集合,但是如何在所有参与者之间共享可靠的集合?

谢谢!

4

1 回答 1

1

Actor 在设计上是独立的实体,因此您不能简单地在多个实例之间“共享”一个集合。我想到了一些解决方法-

  • 生成一个具有固定 ID 的专用 Actor,并让其他 Actor 在完成工作时与该 Actor 通信
  • 创建一个单独的有状态服务,您的参与者将访问该服务以存储所需的数据
  • 有一个单独的资源,比如 EventHub,来监听参与者在任务完成时将生成的事件
于 2017-09-08T14:21:44.363 回答