我想创建一个持续执行任务的 Actor,然后它可以通过外部调用停止来停止,但被完全阻塞了。
演员应该看起来如下
myActor = actor {
loop {
react { message ->
if(message instanceof String && "stop".equals(message))
{
stop()
}
}
}
while(true)
{
// do some work
}
}
创建完成后,可以通过我的测试文件@BeforeMethod 启动actor:
myActor.start()
它的句柄可以由主线程保留,并通过我的测试文件中的以下命令停止,@AfterMethod:
myActor.send "stop"
但是,我无法使用上述方法。首先,我发现我不需要“myActor.start()”,在@BeforeMethod之后,它只是自动运行;
其次,虽然我尝试在我的测试文件的@AfterMethod 中调用“myActor.send”“停止”,但看起来 myActor 的循环{}从未被访问过,并且一直在使用 while{}。
我也尝试将 loop{} 放入 while{},但它仍然无法正常工作,并且 loop{} 仍然没有被调用
我错过了什么吗?
谢谢!