MVVM Light Messenger 接收方法

Ala*_*ter 5 c# wpf mvvm mvvm-light

我正在使用 MVVM Light 在两个 ViewModel 之间发送消息。在接收 VM 中,我正在尝试以下操作

Messenger.Default.Register<NotificationMessage>(this, async (msg) => {
    await HandleMessage(msg);
});

private async Task HandleMessage(NoficationMessage message)
{
    ... code using await
}
Run Code Online (Sandbox Code Playgroud)

第一次发送消息(通过单击按钮)时,异步方法运行。下次发送消息时什么也不会发生 - 方法不会被调用(通过断点检查)。

以这种方式在 Register 方法上允许异步吗?

什么是解决方法?

SIL*_*ENT 5

我相信对于异步事件,你需要 void。

尝试以下操作

Messenger.Default.Register<NotificationMessage>(this, HandleMessage);
private async void HandleMessage(NotificationMessagemessage)
{
    ... code using await
}
Run Code Online (Sandbox Code Playgroud)