是ReceiveTimeout应用到藏匿的消息

问题描述:

比方说,我有2个状态是ReceiveTimeout应用到藏匿的消息

ReadyBusy抽象的演员。

在忙碌状态下,我只想接收特定类型的消息,例如PauseJobCancelJob,所有其他消息如StartNewJob都被隐藏。

问:如果我忙碌状态设置SetReceiveTimeout(),它是在这种状态下只适用于邮件,我居然过程(PauseJobCancelJob)或藏匿的消息也算?

在此先感谢

总之,藏匿的消息也被认为是因为演员仍处于活动状态,而它的积攒的消息。

当您使用SetRecieveTimeout()时,如果actor在指定的时间内没有收到任何消息,则会发送RecieveTimeout消息。

private void Busy() 
{ 
    SetReceiveTimeout(TimeSpan.FromSeconds(1)); 

    Receive<PauseJob>(msg => 
    { 
     // Do something 
    }); 

    Receive<ReceiveTimeout>(timeout => 
    { 
     // I won't run until 1 second after 
     // all messages are processed or stashed 
    }); 

    ReceiveAny(msg => 
    { 
     Stash.Stash(); 
    }); 
} 
+0

谢谢,它似乎不可能设置只接收特定消息类型的接收超时,将不得不手动实现它 –