是否可以在不使用循环的情况下使用事件驱动的程序?

时间:2016-06-07 14:11:01

标签: loops events event-handling listener

对于低级别的反应系统来说,一个不断监听检查用户输入的循环可能会产生一些开销。我很好奇,是否有可能有一个程序具有真正的待机模式,在用户给它输入之前没有等待的开销。我想到的东西类似于一系列堆积的多米诺骨牌,它们不需要经常维护的开销,但可以通过用户的输入以某种方式推翻。

1 个答案:

答案 0 :(得分:0)

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

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