修改了自述文件

This commit is contained in:
fengjiayi
2024-09-20 17:30:38 +08:00
parent 98a9fc7286
commit cd1b0a7401
9 changed files with 12 additions and 1390 deletions

View File

@@ -22,19 +22,21 @@ https://space.bilibili.com/33526379
## 1. 不生成节点控件的枚举值:
* **Init - 初始化方法**
* 入参:**DynamicContext**(有且只有一个参数)。
* 入参:**IDynamicContext**(有且只有一个参数)。
* 返回值:自定义,但软件目前不支持接收返回值。
* 描述在运行时首先被调用。语义类似于构造方法。建议在Init方法内初始化类、注册类等一切需要在构造函数中执行的方法。
* **Loading - 加载方法**
* 入参:**DynamicContext**(有且只有一个参数)。
* 入参:**IDynamicContext**(有且只有一个参数)。
* 返回值:自定义,但软件目前不支持接收返回值。
* 描述当所有Dll的Init方法调用完成后首先调用、也才会调用DLL的Loading方法。建议在Loading方法内进行业务上的初始化例如启动Web启动第三方服务
* **Exit - 结束方法**
* 入参:**DynamicContext**(有且只有一个参数)。
* 入参:**IDynamicContext**(有且只有一个参数)。
* 返回值:自定义,但软件目前不支持接收返回值。
* 描述:当结束/手动结束运行时会调用所有Dll的Exit方法。使用场景类似于终止内部的其它线程通知其它进程关闭例如停止第三方服务。
* **关于IDynamicContext说明**
* 基本说明IDynamicContext是动态上下文接口内部提供用以注册、获取实例的IOC容器SereinIoc接口以及运行环境IFlowEnvironment接口一般情况下你无须关注IFlowEnvironment对外暴露的属性方法。除此之外还有一个用以创建定时循环任务的方法CreateTimingTask通过该方法可以实现类似于定时器的功能它的运行周期收到运行环境管理。
## 2. 基础节点
* 待更新
@@ -48,15 +50,17 @@ https://space.bilibili.com/33526379
* **Flipflop - 触发器**
* 全局触发器
* 入参依照Action节点。
* 返回值Task<FlipflopContext>
* 返回值Task<IFlipflopContext>
* 描述运行开始时所有无上级节点的触发器节点在当前分支中作为起始节点分别建立新的线程运行然后异步等待触发如果有。这种触发器拥有独自的DynamicContext上下文共用同一个Ioc执行完成之后会重新从分支起点的触发器开始等待。
* 分支中的触发器
* 入参依照Action节点。
* 返回值Task<FlipflopContext>
* 返回值Task<IFlipflopContext>
* 描述:接收上一节点传递的上下文,同样进入异步等待,但执行完成后不会再次等待自身(只会触发一次)。
* FlipflopContext
* 描述内部有一套枚举描述Succeed、Cancel如果返回Succeed会通过所有下级节点集合创建Task集合然后调用WaitAll()进行等待每个Task会新建新的DynamicContext上下文共用同一个Ioc。如果返回Cancel则什么也不做
* 使用场景配合TcsSignal<TEnum>使用定时从PLC中获取状态当某个变量发生改变时会通知持有TaskCompletionSource的触发器如果需要可以传递对应的数据
* IFlipflopContext
* 基本说明IFlipflopContext是一个接口你无须关心内部实现
* 参数描述State状态枚举描述Succeed、Cancel、Error、Cancel如果返回Cancel则不会执行后继分支如果返回其它状态则会获取对应的后继分支开始执行
* 参数描述TriggerData内部分别有状态描述、触发的参数。触发状态有两种External外部触发Overtime超时触发当你在代码中的其他地方主动触发了触发器则该次触发类型为External当你在创建触发器后超过了指定时间创建触发器时会要求声明超时时间则会自动触发但触发类型为Overtime触发参数未你在创建触发器时指定的值
* 使用场景配合ChannelFlowTrigger<TEnum>使用定时从PLC中获取状态当某个变量发生改变时会通知持有 Channel<TriggerData>的触发器,如果需要,可以传递对应的数据。
演示:
![image](https://github.com/fhhyyp/serein-flow/blob/cc5f8255135b96c6bb3669bc4aa8d8167a71c262/Image/%E6%BC%94%E7%A4%BA%20-%201.png)
![image](https://github.com/fhhyyp/serein-flow/blob/cc5f8255135b96c6bb3669bc4aa8d8167a71c262/Image/%E6%BC%94%E7%A4%BA%20-%202.png)