c# - LINQ 表达式类可以实现观察者模式而不是延迟执行吗?

标签 c# linq linq-to-objects expression-trees state-machine

我们在使用状态机的应用程序中遇到问题。该应用程序作为 Windows 服务实现并且是基于迭代的(它通过一切“foreaches”自身)并且状态机正在处理无数的实例。

当我阅读 Jon Skeets 的 MEAP 版本的书“C# in Depth,第 2 版”时,我想知道我是否可以更改整个内容以使用 linq 表达式实例,以便使用表达式树表示守卫和条件.

我们正在这个状态机引擎上构建许多应用程序,并且可能会从 VS 2010 中新的表达式树可视化工具中受益匪浅

现在,简单的例子。 如果我有一个表达式树,其中有一个 OR 表达式条件和两个子节点,有没有什么方法可以实现观察者模式,以便表达式树成为事件驱动的? 如果条件发生变化,它应该通知其父节点(OR 节点)。由于 OR 节点随后从“false”变为“true”,因此它应该通知 ITS parent 等等。

我喜欢表达式树的声明模型,但如果您想要基于事件的“实时”条件,则延迟执行模型的工作方向与控制流相反。

我这是在胡闹吗?或者 BCL 中是否有一些概念可以帮助我实现这一目标?

最佳答案

听起来像新的Reactive Framework您可能感兴趣:

Rx is a library for composing asynchronous and event-based programs using observable collections.

关于c# - LINQ 表达式类可以实现观察者模式而不是延迟执行吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2582828/

相关文章:

c# - 如何允许用户调整控件的大小

c# - ASP.NET 5 Web API 项目模板不允许使用 Entity Framework

c# - Linq 从另一个列表中获取列表

c# - Enumerable.OfType<>() 无法按预期方式使用路由集合

c# - 需要使用 Azure Ad 进行身份验证将 Blazor Web 应用程序发布到 Azure 的指导

c# - Excel Interop 将斜杠添加到 NumberFormat

c# - 两个选择计数查询之间的linq差异

c# - LINQ-to-objects 中的 Enumerable.Where 是否保留顺序?

c# - 我如何简化这个在字符串中搜索关键字并按相关性排序的 LINQ 查询?

c# - LINQ to Objects 是否保持其顺序