0

我一直在尝试和演员一起玩,但我遇到了问题。当我尝试将某些内容发送回给调用者时,它似乎根本没有通过,即使它正在处理不同的案例。我在父演员中收到的信息如下所示:

        receive {
            case (x,1) => { // case of html
              println("reaches here!")
            }
            case (url,name,2) => {
                              println("doesnt reach here!")
            }
            case _ => println("Error on callback")
        }

我的演员(处理器类)的行为方法(释义):第一个演员的行为方法将调用以下代码:

    {
        println()
        caller ! (s,1)
        println(caller)
        val processUrls = new Processor(2, s.toString, caller, map, queue)
        processUrls.start()
    }

所以上面的工作。它产生同一个类的另一个actor,它调用不同的方法,但将它传递给同一个调用者,以便原始调用者将接收到消息。它在其行为中调用以下方法:

{
...
...
println(caller)
caller ! (url, name.get, 2)
}

到目前为止,调用者是完全相同的(在两个地方打印出来会产生完全相同的东西。

但是,当我尝试用第二种方法发回该消息时,绝对不会打印任何内容。就像来电者甚至没有收到消息一样。即使是包罗万象的 _ 案例也不会被打印出来。我不知道是怎么回事。

4

1 回答 1

1

没关系,我没有用循环包围接收......

于 2012-12-09T07:08:02.847 回答