在演员中注册计时器的签名是:
IActorTimer RegisterTimer(Func<object, Task> asyncCallback, object state, TimeSpan dueTime, TimeSpan period);
问题:
为什么asynCallback希望将状态作为object类型的函数参数接收。毕竟,我的回调已经是Actor的一部分,可以直接访问状态。因此,对象作为参数的要求似乎是多余的。
当前的想法
一个可能的原因是,这允许我们将actor状态提供给不属于actor的回调(这甚至可能)。这是唯一的原因吗?或者,在使用计时器激活方法处理状态时,我是否应该考虑其他因素?
答案 0 :(得分:5)
就我所见(我自己并没有那么多使用过ActorTimers),它不是通常传递的实际演员状态(因为你已经有了),但是你正在调用的函数的参数。
在这里,他们通过“假”&#39;作为“状态”#39;在注册计时器时,这个.SaveToStorage,但是稍后(在OnDeactivateAsync中),他们用true调用相同的this.SaveToStorage。