【发布时间】:2018-11-19 21:03:29
【问题描述】:
似乎在控制台应用程序或单元测试中使用 akka.net 非常容易。
但我想尝试一些演员的简单登录方法:打开启动画面,发送登录命令,登录成功后关闭启动画面。现在答案被发送给发送者,它是一个演员。等待 Ask 呼叫的应答会阻塞 UI。 MainViewModel 已经派生自一个基类,因此不能将其设为演员。
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"));
}
- 直接打电话给负责的演员,答案是发送给死信。还有更复杂的例子吗?
- 会收到答案并可以调用主视图模型的回调,但给我 InvalidOperationException "Call from invalid thread"
- 似乎是获取调用结果的唯一途径
我想知道如何通过 Actor 消息填充 ListViews 或 ComboBoxes。
【问题讨论】: