2011-07-03 77 views
1

我几乎可以肯定,做一些愚蠢的深刻,这使得这个演员不能正常工作,但我无法看到它的时候盯着它一大块之后。所以我想我会问。演员案例类简单的例子

我不能得到这个代码的工作 - 在,如果我把它的消息,如4(应触发默认的情况下),没有打印的,我无法通过向跳闸监视它温度报警。

我在做什么错?

class TemperatureMonitor extends Actor { 
    var tripped : Boolean = false 
    var tripTemp : Double = 0.0 

    def act() { 
    while (true) { 
     receive { 
     case Heartbeat => 0 
     case TemperatureAlarm(temp) => 
      tripped = true 
      tripTemp = temp 
     case _ => println("No match") 
     } 
    } 
    } 
} 
+0

那么创建演员的代码呢,启动它并发送消息呢? –

+0

原因:“虽然(真)”,而不是“循环”? –

回答

5

既然你不显示你如何创建演员,我们只能猜测。我要检查的第一件事是你已经开始演员:

val monitor = new TemperatureMonitor 
monitor.start 
monitor ! 4 // should trigger the default case, as you say 
+0

确实。当我回到这个新的时候,它似乎没有任何大惊小怪地正确运行。不知道什么是错误的,也许只是解释它,所以把它固定在我的头上。 – kittylyst