3
我可能做了一些不正確的事情,但並不明顯。我有以下代碼:Akka.NET詢問任務永不完成
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
的問題是,任務返回的詢問永遠不會完成。其狀態保持在等待激活狀態。 「Foo」確實打印在命令行上,因此我知道該演員正在處理「打印」消息。在重寫的演員PrintMsg中是否還有別的東西可以標記任務完成?
不會Task.Run在這裏受益嗎? – whoisj
我不這麼認爲,我相信任務已經在運行(由Akka.net框架處理)。我正在獲得成功運行任務的結果。我只是等待任務完成。 –
嘗試像'Task.Run(async()=> {/ *你的使用語句* /)。等待();'看看是否有幫助。並且放下'while(...)'和'task.Wait;'東西。 – whoisj