【IT168技术文档】
创建好的持久化数据库里包含两张表, InstanceState和 CompletedScope,InstanceState表中记录未完成事例的运行状态,CompletedScope表记录当工做流使用事务的支持。
定义两个事件
首先定义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);
}
}
}
whileActivity的条件为!this.IsComplete
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;
}
}