基于缺乏搜索结果,无论我怎么说,我很确定我在想这个错误。
我有一个程序将创建大量对象,并且会有许多事件需要连接以侦听所有其他实例,尤其是在创建实例时。通过纯事件来管理这个对我来说没有意义。所以我想使用pub / sub模式来使事情更容易处理。此外,计划是将pub / sub纯粹处于进程中,因此事件不会越过任何边界。此外,事件不会在内存以外的任何地方保留,因此无法播放事件。
问题来自通常为CancelEventArgs的事件。 有没有办法发布订阅者可以标记为已取消的事件?
以下是我目前对可能解决方案的看法:
发布ShouldCancelEventX
个事件并等待一段时间,以便发布EventXCancelled
个事件。如果没有在时间范围内发布,请发布EventX
事件。我看到的最大问题是等待事件的任意时间跨度。
让pub / sub实现具有更多逻辑,以便在所有订阅者收到事件后它可以通知发布者。这将允许ShouldCancelEventX
的发布者知道所有订阅者何时收到该消息。这只是错误,因为我看到的pub / sub的每个实现都提供了void
发布方法。所以,这再次让我相信我正在以错误的方式思考这个问题。