我想讓演員工作,但它只能部分工作。斯卡拉演員不按預期工作
MyActor每秒工作並通過循環調用自身來運行Job。
這部分工作正常。
我也想從我的應用程序的其他部分隨機調用MyActor。
這不行。
MyActor遞增其mailboxSize,但隨後繼續循環,並且從不獲取從外部發送的任何消息。
case class DoJob(fast:Boolean)
object MyActor extends Actor {
def act = {
loop {
MyActor ! DoJob(false)
receive {
case DoJob(fast) => {
Job.perform(fast)
}
}
Thread.sleep(1000)
}
}
}
以下呼籲方面不起作用DoJob(真),但僅僅增加MyActor的郵箱大小:
MyActor ! DoJob(true)
出了什麼問題嗎?
你確實對它調用了'.start',對吧? – wheaties 2010-11-17 16:24:43
是的,我做過,否則循環會起作用? – trajectory 2010-11-17 16:51:42