代码之家  ›  专栏  ›  技术社区  ›  Tornike Gomareli

基于推的和基于拉的结构(如IEnumerable<t>和IOBServable<t>

  •  18
  • Tornike Gomareli  · 技术社区  · 6 年前

    在我读过的每一篇科技文章中 IEnumerable(IEnumerable) 可维护 我读到了, IEnumerable(IEnumerable) 是基于拉的结构和 可维护 是基于推的结构。

    我读过了 可维护 我们有异步调用,其中没有阻塞,所有内容都是基于推送的。

    但是,但是,但是…

    它真正意味着什么? 基于和 基于

    因为在我看来 IEnumerable(IEnumerable) 我们还可以将数据推到结构中,也可以从中提取数据,我真的在技术术语和想法中迷失了方向。

    请以一种正常的和人的方式向我解释这两种结构之间的区别,以及推式和拉式结构之间的区别。

    谢谢。

    4 回复  |  直到 6 年前
        1
  •  23
  •   Eric Lippert    6 年前

    // I want some toast.  I will pull it out of the toaster when it is done.
    // I will do nothing until the toast is available.
    Toast t = toaster.MakeToast();
    t.AddJam();
    // Yum.
    

    // I want some toast.  But it might take a while and I can do more work
    // while I am waiting:
    Task<Toast> task = toaster.MakeToastAsync();
    Toast t = await task;
    // await returns to the caller if the toast is not ready, and assigns
    // a callback. When the toast is ready, the callback causes this method
    // to start again from this point:
    t.AddJam();
    // Yum.
    

    IEnumerable<T> MoveNext T IObservable<T>

    Func<T> Task<T>


    IObservable await

        2
  •  4
  •   Shlomo    6 年前

        3
  •  2
  •   Enigmativity    6 年前

        4
  •  1
  •   Sentinel    6 年前