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