我正在开发一个Winform
进行测量的应用程序。测量涉及外部硬件,如机器人、电源等。
由于测量本身运行时间很长(大约 20 分钟),它将在后台工作程序中运行。
对我来说主要问题是如何设计可测量的。例如,如果他做错了什么,用户应该能够取消测量。但是测量不应该在任何地方都被取消——例如它不允许在执行通信时取消IO
。shutdown
此外,如果用户取消,应该有一个保存。
问题是,我不想用取消相关代码污染业务逻辑(测量)。
有什么好的方法呢?
我在python
. 在那里,我将测量实现为状态机 ( FSM
)。每个状态转换都是一个取消点。如果用户在状态运行时取消,状态机将跳转到finish
安全关闭发生的状态。