【问题标题】:Loading tree hierarchy asynchronously异步加载树层次结构
【发布时间】: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


【解决方案1】:

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

HTH

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-04-09
    • 2012-10-02
    • 1970-01-01
    • 2017-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多