2011-07-03 165 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