学习<>WF程序队列应用实例-Wait活动

1.Wait活动首先等待一段指定的时间的流逝,然后在完成.代码如下:

Code

这个自定义的Wait活动依赖TimerService的实现,TimerServices管理着实际的计时器,在Wait活动的Execute方法中,创建一个WF程序队列并注册了ContinueAt方法,随后调用TimerServices的SetTimer方法,将一个代表计时器的Uid传入方法,当计时器被触发时,TimerServices会把数据压入Wait活动创建的WF程序队列中,当调度器调用ContinueAt方法,并迁移到Closed状态.

2.我们现在定义一个名TimerServices的抽象类,以便为我们的计时器服务提供接口.我们可以实现各种各样的逻辑,代码如下:

Code

3.接下来我们实现一个简单的计时器服务,代码如下:

Code

4.接下来我们在Wait活动所在的程序集的元数据里加入以下元数据:

Code

以便将XML名称空间"http://GuoyiWF/Activities"映射到CLR名称空间"Guoyier.Activities".

5.我们新建一个顺序工作控制台应用程序,来进行测试,在项目中新建一个xoml文件,内容如下:

Code

等待的时间间隔设置为10秒钟

6.执行Wait活动的代码如下:

原文地址:https://www.cnblogs.com/goyier/p/1313604.html