簡體   English   中英

WPF中的Actor系統生存期

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM