使用 CancellationScope
本主题适用于 Windows Workflow Foundation 4。
此示例演示如何使用 CancellationScope 活动取消应用程序中的工作。
许多中间层组件和服务依靠已知的事务编程构造来处理针对它们的取消操作。但在许多情况下,必须取消事务中无法执行的工作。使用取消的难度大于使用事务的难度,这是因为必须先跟踪必须取消的工作。.NET Framework 4 通过提供 CancellationScope 活动帮助您执行此操作。
可以从活动内或活动的父级触发取消。按照父活动(如 Sequence、Parallel、Flowchart 或自定义复合活动)来计划其子活动。父活动可以出于任何原因取消子活动。例如,只要带三个子分支的 Parallel 活动完成一个分支且 CompletionCondition 表达式的计算结果为 true,该活动就会取消剩余子分支。宿主应用程序可以调用 Cancel 来外部取消工作流。
若要使用 CancellationScope 活动,请将需要取消的工作置于 Body 属性中,并将取消后执行的工作置于 CancellationHandler 属性中。
此示例演示如何从活动自身内部取消活动。
此示例用来演示 CancellationScope 活动的场景是:一个客户需要尽快购买到迈阿密的机票。有两家旅行社希望承接此业务。示例使用 Parallel 活动中的两个 CancellationScope 对此业务逻辑进行建模。Parallel 活动的 CompletionCondition 设置为 true;由于在完成任何分支后将检查 CompletionCondition,因此将导致剩余分支在第一个分支完成后被取消。客户端应用程序会同时请求这两家旅行社购买机票,一旦第一家旅行社确认已购得机票,应用程序将取消对另一家旅行社所下的订单。
使用此示例
使用 Visual Studio 2010 打开 CancelationScopeXAML.sln 解决方案文件。
若要生成解决方案,请按 F6。
若要运行解决方案,请按 Ctrl+F5。
注意: |
---|
您的计算机上可能已安装这些示例。在继续操作之前,请先检查以下(默认)目录:
<安装驱动器>:\WF_WCF_Samples
如果此目录不存在,请访问针对 .NET Framework 4 的 Windows Communication Foundation (WCF) 和 Windows Workflow Foundation (WF) 示例(可能为英文网页),下载所有 Windows Communication Foundation (WCF) 和 WF 示例。此示例位于以下目录:
<安装驱动器>:\WF_WCF_Samples\WF\Basic\Built-InActivities\CancellationScope
|