排队活动创建指南
1. 活动生命周期主题探索
排队活动以生命周期和线程为核心,实现排队活动需要了解更多内部操作。下面介绍两个关键概念:
-WorkflowQueue:所有主机与工作流的通信都基于WorkflowQueue类型。它是一个命名位置(队列),能响应事件并接收数据。当命名队列被触发时,运行时会定位与之关联的工作流实例。若实例处于持久化存储中,运行时会重新激活它并传递数据。在使用ExternalDataExchange、Web 服务和 Windows 通信基础进行主机 - 工作流通信时,实际接收事件的命名队列是隐藏的。而在处理多突发活动时,会直接使用命名队列。
-ActivityExecutionContext:是活动执行的容器。自定义活动的许多操作需要访问Execute方法中接收的ActivityExecutionContext参数。许多自定义活动使用它的原因如下:
- 访问运行时注册的开箱即用和自定义运行时服务,例如在处理多突发活动时从ActivityExecutionContext中检索WorkflowQueuingService以创建WorkflowQueue对象。
- 允许多突发活动中的逻辑在不同线程上处理,同时活动将控制权返回给运行时。
- 出于架构和维护原因,将逻辑从执行方法转移到可访问的服务中。
- 在处理复合活动时,访问