异步加载树层次结构

时间:2018-11-03 08:51:13

标签: c# system.reactive

我正在开发具有树形层次结构的API。我正在考虑支持树中所有节点的异步加载,但我不确定这是否是一个好主意。我打算为此使用反应式扩展。

每个节点都有一个Load方法,直到所有其子节点都已加载(事物首先加载深度)后,该方法才会完成。因此,对于一个简单的结构:

1
|-- 1.1 
| |- 1.1.1
| |- 1.1.2
|-- 1.2
  |- 1.2.1
  |- 1.2.2

节点1异步加载1.1和1.2,然后等待它们完成,依次加载1.1.1、1.1.2、1.2.1、1.2.2 ...,这是6个异步加载操作。该树可能有1万个节点...这是很多异步加载操作-问题1-这会产生问题吗?

我想以一种可以在一定时间范围内分散负载的方式实施此操作,因此,如果需要一次加载许多节点,用户可以调整加载时间以避免应用程序冻结。 问题2-我该如何在响应式扩展中做到这一点?我需要研究哪些组件,自定义可观察对象和主题?不知道从哪里开始。

1 个答案:

答案 0 :(得分:1)

我最初的想法是使用Observable.Join模式...在这里考虑我的答案(以及在此处提供示例的链接:https://stackoverflow.com/a/3868608/13131https://stackoverflow.com/a/16462959/13131

HTH