【问题标题】:Is it possible to have event-driven programs without using loops?是否可以在不使用循环的情况下拥有事件驱动程序?
【发布时间】:2016-10-07 11:55:53
【问题描述】:

似乎对于低级反应系统来说,一个不断侦听检查用户输入的循环可能会产生一些开销。我很好奇,是否有可能有一个程序具有真正的待机模式,在等待用户输入之前它没有开销。我正在考虑类似于一系列堆叠的多米诺骨牌,无需开销即可持续维护,但可以通过用户输入以某种方式推倒。

【问题讨论】:

    标签: loops events event-handling listener


    【解决方案1】:

    典型的事件驱动编程完全不依赖于轮询循环。 通常,您将事件附加到一个委托,该委托是从另一块代码(引发事件的事物)中专门调用的。唯一真正涉及的循环是因为您可以在委托上有许多订阅者,因此您需要循环它们才能调用它们,仅此而已。现在监听命令行输入的东西可能正在使用轮询循环,但这实际上不是事件编程。

    public string Input
    {
        set
        {
            if(!string.isnullorempty(value))
            {
              this.input = value;
              callInputAddedEvents(value);//this loops a list of delegates to call them
            }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2021-07-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-04
      • 2017-09-12
      • 1970-01-01
      • 2011-06-18
      • 1970-01-01
      相关资源
      最近更新 更多