2

有没有人有关于使用因果关系的信息?我曾尝试在我的项目中使用它们但没有成功,因为它们似乎会导致大量内存负载。

这不寻常吗?

除了文档中给出的普通(又名过于简单)示例之外,没有太多关于在 CCR 代码中使用因果关系的信息。

我不能给出任何代码示例,因为我撕掉了因果关系并替换为更传统的异常处理(虽然在 CCR 中不是传统的!)

4

1 回答 1

2

我最近才开始研究它们,所以我不能提供太多建议,但我会提供我能提供的:

  1. 检查您的代码中是否有任何循环 - 是否有可能一次又一次地产生因果关系?这方面的一个例子是,您创建一个新的因果关系并将消息发布到另一个组件,该组件(最终)回发到您的组件,导致原始任务再次运行,因此因果关系“堆叠”在另一个组件上。一种方法是在添加新的之前检查 ActiveCausalities。
  2. 您是否考虑尝试在添加它的同一范围的末尾显式删除因果关系?
  3. 显然,DSS 广泛使用因果关系,因此,如果确实存在泄漏,那么您会认为他们已经找到了。
  4. 同意,关于此主题的示例不足,因此如果不尝试了解实现,就很难知道最佳实践是什么。

看看这个帖子。它建议您要在添加的范围末尾自动删除因果关系。

于 2009-03-10T10:50:00.110 回答