gpt4 book ai didi

c# - Prism EventAggregator 订阅执行两次

转载 作者:行者123 更新时间:2023-11-30 21:54:47 25 4
gpt4 key购买 nike

我有一个与这篇文章类似的问题 Prism CompositePresentationEvent fires twice

我的问题是 Publish 只触发一次,但 Subscribe 中的代码执行了两次。

这是我的发布代码。

EventAggregator.GetEvent<PubSubEvent<HardwareLoaded>>().Publish(new HardwareLoaded() { HardwareOK = _HardwareOK });

和订阅代码。

IEventAggregator.GetEvent<PubSubEvent<HardwareLoaded>>().Subscribe(x =>
{
if (!x.HardwareOK)
{
MessageBox.Show("There was an issue loading hardware. See Log");
}

LoadingVisibility = Visibility.Collapsed;
});

我在 PublishSubscribe 都设置了一个断点,可以看到发布只触发一次,而订阅代码触发两次。这是由显示两次的消息框支持的。我搜索了任何其他发布代码,但没有找到。

有什么想法吗?

最佳答案

确保 Subscribe 方法只被调用一次。

如果它被调用两次,同一个事件将触发同一个回调,就像有完全不同的处理程序对同一个事件作出 react 一样。

关于c# - Prism EventAggregator 订阅执行两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32819953/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com