【IT168技术文档】
创建好的持久化数据库里包含两张表, InstanceState和 CompletedScope,InstanceState表中记录未完成事例的运行状态,CompletedScope表记录当工做流使用事务的支持。
定义两个事件
whileActivity的条件为!this.IsComplete首先定义IPersistenceDemo接口: [ExternalDataExchange] public interface IPersistenceDemo { event EventHandler<ExternalDataEventArgs> ContinueReceived; event EventHandler<ExternalDataEventArgs> StopReceived; } 实现本地服务PersistenceDemoService: public class PersistenceDemoService : IPersistenceDemo { public event EventHandler<ExternalDataEventArgs> ContinueReceived; public event EventHandler<ExternalDataEventArgs> StopReceived; public void OnContinueReceived(ExternalDataEventArgs args) { if (ContinueReceived != null) { ContinueReceived(null, args); } } public void OnStopReceived(ExternalDataEventArgs args) { if (StopReceived != null) { StopReceived(null, args); } } }
heeContinue和heeStop分别接收我们定义的ContinueReceived和StopReceived事件。
public sealed partial class PersistenceDemoWorkflow: SequentialWorkflowActivity { private Boolean isComplete = false; public Boolean IsComplete { get { return isComplete; } set { isComplete = value; } } public PersistenceDemoWorkflow() { InitializeComponent(); } private void handleStopReceived_Invoked(object sender, ExternalDataEventArgs e) { //tell the WhileActivity to stop isComplete = true; } }