问题标签 [state-machine]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
18715 浏览

c# - 如何用c#编写状态机?

我需要编写在 c# 中快速运行的状态机。我喜欢 Windows Workflow Foundation 库,但它太慢而且功能太多(即繁重)。我需要更快的东西,最好是使用图形实用程序来设计图表,然后吐出 c# 代码。有什么建议么?谢谢!

0 投票
2 回答
1272 浏览

wpf - WPF 和状态机模式

当用户单击表单上的“下一步”按钮时,我想实现可以切换 tabItems(TabItem1、TabItem2、TabItem3)的功能。出于这个原因,我想使用状态机模式。

这些东西我已经实现了,但是我不知道对不对?:

0 投票
3 回答
1058 浏览

uml - UML状态机图可以用来显示屏幕导航吗?

UML状态机图可以用来显示屏幕导航吗?

0 投票
5 回答
1787 浏览

c# - 在 C# 中实现状态机的最佳(当性能很重要)方法是什么?

我想出了以下选项:

使用 goto 语句:

使用 switch 语句:

一起使用 goto 和 switch:

我更喜欢使用 goto 语句的第一个选项,因为它更快且更简洁。但我不确定这是否是最佳选择。也许性能明智,但谈到可读性我不知道。这就是我问这个问题的原因。你更喜欢哪个选项,为什么?

0 投票
5 回答
12686 浏览

c# - .NET 工作流引擎建议

我遇到了stateless,一个基于Simple State Machine for Boo的分层状态机框架,但使用 C# 3.0 配置

它易于配置和使用,我可能很快就会使用它。

但我只是想知道如果

  • 有人在实际项目中使用过无状态(如果是这样,您的意见是什么?)
  • .NET 还有其他好的工作流引擎吗?(WF除外)
0 投票
27 回答
95060 浏览

c++ - C 状态机设计

我正在制作一个混合 C 和 C++ 的小项目。我正在我的一个工作线程的核心构建一个小型状态机。

我想知道您的 SO 专家是否会分享您的状态机设计技术。

注意:我主要是在经过尝试和测试的实施技术之后。

更新:基于 SO 上收集的所有重要输入,我已经确定了这个架构:

事件泵指向事件集成器,事件集成器指向调度器。 调度程序指向 1 到 n 个动作,这些动作又指向事件集成器。 带有通配符的转换表指向调度程序。

0 投票
7 回答
2795 浏览

ruby-on-rails - state_machine 仅适用于新记录

我似乎无法让state_machinegem(http://github.com/pluginaweek/state_machine/)在现有记录上工作(它在新记录上正常工作)。

这是我的模型:

这是一个演示该问题的 IRB 会话(我这样做ActiveRecord::Base.logger = Logger.new(STDOUT)是为了使其更易于阅读):

即,当我publish发表未保存的评论时,一切正常,但是当我尝试发布已保存的评论时,什么也没有发生。

另一个编辑:也许问题的根源?

即,即使状态实际上已经改变,state_changed?返回 false ,因此 Rails 在我调用时不会更新相应的数据库行save

它在我关闭部分更新时有效,但在我尝试时无效state_will_change!

编辑:

更多奇葩:

相比于:

0 投票
2 回答
2751 浏览

ruby-on-rails - 为 AASM 中的所有转换注册回调?

每次状态转换后我都想调用 2 种方法。现在我正在做:

显然这不是最好的方法。我在复制代码,更重要的是,当回调真正应用于整个状态机时,我将它们与特定转换相关联。有什么更好的方法来处理这个?

0 投票
2 回答
577 浏览

c# - 在 Windows 工作流的 FaultHandler 活动中捕获哪些异常

我现在正在学习 Windows 工作流,现在正在研究状态机中的异常处理。基本上我可以看到一个 FaultHandler 可用于捕获活动中抛出的特定异常。我的问题是我是否需要专门捕获每种类型的异常,或者有没有一种方法可以用一个 FaultHandler 捕获所有异常?我确定这不是最佳实践(那里有任何建议吗?),但只是有兴趣更好地理解它。

0 投票
2 回答
66 浏览

.net - Workflow Foundation StateFinalizationActivity 是否阻塞了线程?

这是场景:

我有一个使用ManualWorkflowScheduler的状态机工作流。假设有 2 个状态:State1State2。State1 包含一个EventDrivenActivity1,它有一个SetStateActivity1将工作流从 State1 移动到 State2。State1 也有一个 StateFinalizationActivity1。

所以我的问题是:

当引发事件并且 SetStateActivity1 执行并将工作流的状态更改为 State2 时,StateFinalizationActivity1 是否在与引发导致状态更改的事件的方法相同的线程(作为调用的一部分)上执行(意思是 - 调用方方法是否具有等到 EventDrivenActivity1 和 StateFinalizationActivity1 的序列都执行了,还是在 EventDrivenActivity1 执行后返回,StateFinalizationActivity1 将在返回后执行)?