[英]Actor system lifetime in WPF
在過去,使用Console應用程序,我保持Akka.NET actor系統活着如下:
class Program {
static void Main(string[] args) {
using (var actorSystem = ActorSystem.Create("ExampleSystem")) {
var exampleActor = actorSystem.ActorOf(Props.Create(() => new ExampleActor()), name: "Example");
Console.WriteLine("Akka.NET ActorSystem is now running, press any key to shut down");
Console.ReadKey();
actorSystem.Shutdown();
actorSystem.AwaitTermination(timeout: TimeSpan.FromSeconds(5));
}
}
}
沒有Console.ReadKey(),什么是管理WPF應用程序的actor系統生命周期的正確方法?
( 獎勵積分:我聽說Shutdown和AwaitTermination已經過時,但我不確定新的最佳做法 )
目前,如果您希望關閉ActorSystem
您應該使用ActorSystem.Terminate()
,它返回一個在關閉完成后完成的Task
。
還有在ActorSystem,另一個屬性WhenTerminated
,它看起來像它只存在,這樣,如果你需要它,而不告訴系統你終止可以訪問結束任務。
在您的示例中, Console.ReadKey()
用於阻止和阻止進程結束,這在WPF應用程序中是不必要的。 如果您不關心系統狀態,可以讓wpf應用程序關閉,或者如果需要系統干凈地關閉,則終止並等待終止任務完成。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.