我可能做了一些错误的事情,但它并不明显。我有以下代码:
namespace test
{
class Program
{
static void Main(string[] args)
{
using (var system = ActorSystem.Create("MySystem"))
{
var testPassRetriever = system.ActorOf<PrintActor>();
var task = testPassRetriever.Ask<PrintActorMsg>(new PrintActorMsg());
// prevent the application from exiting before message is handled
task.Wait();
Console.WriteLine("Finished.");
Console.ReadLine();
}
}
}
class PrintActorMsg{}
class PrintActor : ReceiveActor
{
public PrintActor()
{
Receive<PrintActorMsg>(msg => Console.WriteLine("foo"));
}
}
}// namespace test
问题在于由Ask返回的Task从未完成。其状态保持在等待激活状态。 "Foo"确实在命令行上打印出来,所以我知道该actor正在处理Print消息。我是否应该在重写的actor PrintMsg中执行其他操作以标记任务已完成?