WF本质论 读书心得 3 活动的执行
调度Scheduling
调度器:
建立一个队列,让其中的工作项(即活动中的委托方法,称之为调度器工作项)分配到目标活动
使用Invoke<T>方法, 将ContinueAt()的工作项送进调度器队列,同时分配工作项,同时执行相应的委托方法
调度器工作队列 != WF程序队列,
前者由runtime管理, 工作项是ContinueAt()这样的delegate
后者由WorkflowQueueService管理, 其中放的是WorkflowQueue的实例
活动状态机
两个枚举
AES, 活动的执行状态
AER, 活动的执行结果
AEC实现了IDispose接口,所以AEC不能缓存,比如说Execute方法,AEC对象作为参数,当方法返回时,AEC对象会立刻被销毁.
活动的服务:
Main()中, 在WF运行时中添加服务: runtime.AddService(new Service1());
通过context获取该服务:context.GetService<Service1>();
----由宿主根据抽象类,自主选择使用那个Service,详细见第5章
回顾书签
一个例子: 一个活动将工作委托于自身
于是,在创建书签的同时就恢复了书签,中间没有等待.Execute方法中使用: base.Invoke(ContinueAt, SystemArgs.Empty)方法即可
这时,ContinueAt方法结尾要加上context.CloseActivity();,从而使活动状态变为AES.Closed.
Invoke方法的定义: Invoke<T>(EventHandler<T> handler, T e); e为handler委托的参数
WF程序的执行:
首先WorkflowRuntime.CreateWorkflow()返回WF程序实例instence, 并为其准备了一个调度器及工作队列.此时WF程序中的所有活动都处于Initialized状态
然后instance.Start()运行WF程序实例,通过活动的Execute方法,将
调度器:
建立一个队列,让其中的工作项(即活动中的委托方法,称之为调度器工作项)分配到目标活动
使用Invoke<T>方法, 将ContinueAt()的工作项送进调度器队列,同时分配工作项,同时执行相应的委托方法
调度器工作队列 != WF程序队列,
前者由runtime管理, 工作项是ContinueAt()这样的delegate
后者由WorkflowQueueService管理, 其中放的是WorkflowQueue的实例
活动状态机
两个枚举
AES, 活动的执行状态
AER, 活动的执行结果
AEC实现了IDispose接口,所以AEC不能缓存,比如说Execute方法,AEC对象作为参数,当方法返回时,AEC对象会立刻被销毁.
活动的服务:
Main()中, 在WF运行时中添加服务: runtime.AddService(new Service1());
通过context获取该服务:context.GetService<Service1>();
----由宿主根据抽象类,自主选择使用那个Service,详细见第5章
回顾书签
一个例子: 一个活动将工作委托于自身
于是,在创建书签的同时就恢复了书签,中间没有等待.Execute方法中使用: base.Invoke(ContinueAt, SystemArgs.Empty)方法即可
这时,ContinueAt方法结尾要加上context.CloseActivity();,从而使活动状态变为AES.Closed.
Invoke方法的定义: Invoke<T>(EventHandler<T> handler, T e); e为handler委托的参数
WF程序的执行:
首先WorkflowRuntime.CreateWorkflow()返回WF程序实例instence, 并为其准备了一个调度器及工作队列.此时WF程序中的所有活动都处于Initialized状态
然后instance.Start()运行WF程序实例,通过活动的Execute方法,将
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架