C# 异步加载树层次结构

C# 异步加载树层次结构,c#,system.reactive,C#,System.reactive,我正在开发一个具有树层次结构的API。我考虑支持树中所有节点的异步加载,但我不确定这是否是个好主意。我正计划为此使用反应式扩展 每个节点都有一个加载方法,在加载其所有子节点之前(先加载深度)。因此,对于一个简单的结构: 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个异步加载操作。该树可能有10000

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

每个节点都有一个加载方法,在加载其所有子节点之前(先加载深度)。因此,对于一个简单的结构:

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个异步加载操作。该树可能有10000个节点。。。这是很多异步加载操作-问题1-这会产生问题吗?


我希望通过一种方式来实现这一点,即我可以在一定的时间跨度内分散负载,因此用户可以调整负载时间,以避免在需要同时加载大量节点时应用程序冻结问题2-在反应式扩展中,我将如何进行此操作?我需要查看哪些组件、自定义观察对象和主题?不知道从哪里开始

我最初的想法是使用Observable.Join模式。。。考虑我的答案(这里提供了一个例子,链接):


HTH

关于问题1。不,如果您正确地使用任务,则不应该这样做。:-)