【发布时间】:2018-11-03 08:51:12
【问题描述】:
我正在开发一个具有树层次结构的 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 个异步加载操作。这棵树可能有 10 000 个节点...这是很多异步加载操作 - 问题 1 - 这会产生问题吗?
我想以一种可以将负载分散到某个时间跨度的方式来实现这一点,因此如果需要一次加载大量节点,用户可以调整加载时间以避免应用程序冻结。 问题 2 - 我将如何在响应式扩展中执行此操作? 我需要研究哪些组件、自定义可观察对象、主题?不知道从哪里开始。
【问题讨论】:
-
关于问题 1。不,它不应该,如果你做得正确 - 使用任务。 :-)
标签: c# system.reactive