簡體   English   中英

如何在MVVM中使用akka.net的參與者?

[英]How to use actors of akka.net in MVVM?

在控制台應用程序或單元測試中使用akka.net似乎非常容易。

但是我想嘗試一些參與者來使用一種簡單的登錄方法:打開初始屏幕,發送登錄命令,在登錄成功后關閉初始屏幕。 現在,答案將發送給演員。 等待Ask呼叫的答案將阻止UI。 MainViewModel已經從基類派生,因此使其成為actor並不是一種選擇。

public void OnStartupCommand(EventArgs args)
{
    _splashScreen = new SplashScreenView();
    _splashScreen.Show();
    // [1]
    _actorSystem.ActorSelection("/user/system").Tell(new Login("Me"));
    // [2]
    var mainWindowActor =_actorSystem.ActorOf(Props.Create(() => new 
    MainWindowActor(this)), "mainwindow");
    mainWindowActor.Tell(new Login("me"));
    // [3]
    var result = await _actorSystem.ActorSelection("/user/system").Ask(new Login("me")); 
}
  1. 直接致電負責人,答案發送給死信。 還有更復雜的例子嗎?
  2. 將收到答案並可以調用mainviewmodel的回調,但是給我InvalidOperationException“從無效線程中調用”
  3. 似乎是獲得通話結果的唯一方法

我想知道如何通過Actor消息填充ListViews或ComboBoxes。

默認情況下,大多數Akka actor安排在后台線程中,因此它們無法在UI上進行直接更新(僅允許應用程序的UI /主線程執行此操作)。 如果要在UI線程上生成actor,則需要將其配置為使用SynchronizedDispatcher

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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