zoukankan      html  css  js  c++  java
  • 学习<>之 WF程序队列(摘录)

    1.任何需要外部实体输入的活动,都必须解决两方面问题

        第一:必须要让外部实体知道该活动需要输入消息

        第二:当消息到达时,接收通知

     这种简单的方式是片段式执行的核心,要支持这种方式,最基本的要求是活动必须能接收输入,即使是在WF程序实例处在空闲状态,甚至是存储在类似SQL Server数据库这样的持久化存储设备中时,也要能够接收输入.当外部输入到达时,WF程序实例必须能够恢复执行

    2.尽管各种通信技术(比如:WCF,ASMX)可以构建在WF之上,但是如果要将数据发送到已经钝化的WF程序实例,必须使用WorkflowQueuingService

    3.WF程序队列本质上是一个具有名称的占位符,无论活动所在的WF程序实例是否在内存中,活动都可以从这里接收数据,WF程序队列不同于WF程序实例的调度器队列,后者是由运行时管理的,可以把WF程序队列看成一个数据结构,这个数据结构保存了显示创建的书签的负载(这个负载将会传递到书签的物理恢复点).WF程序队列是一个可以寻址的占位点,外部实体可以将数据发送到这里.

    4.在多个WF程序实例中,可能使用了相同的WF程序队列名称,我们可以执行任意数量的WF程序实例,而不会有任何问题,因为数据总是通过WorkflowInstance.EnqueueItem方法将数据发送到指定的实例中,所以不会造成任何歧义,也就是说,WF程序队列不在WF程序实例间共享,这使我们可以把WF程序队列的逻辑地址当成WorkflowInstance.InstanceId,  后者标出WF程序实例.

    5.WF程序队列扮演着外部实体和WF程序实例中活动之间通信管道的角色,WF程序实例的外部代码可以通过EnqueueItem方法,将数据送入WF程序队列中.当一个队列项进入WF程序队列时,就会触发QueueItemAvailable事件,如果活动订阅这个事件时,WF程序队列中已经存在队列项,就会立即触发QueueItemAvailable事件

    测试WF程序队列的实例,可以点击这里下载 (开发工具vs2008)

    运行结果:

  • 相关阅读:
    冒泡排序与选择排序
    SVN-cheanup反复操作失败的问题。
    js区分汉字和字符,校验长度
    maven的安装与使用
    java获取登陆用户的IP地址
    kafka创建topics 错误: 找不到或无法加载主类 FilesJavajdk1.7.0_80lib;C:Program
    SOAPwebservice 与Restfull webservice之间的区别
    CAD数据导入Arcgis10.1的依赖关系
    wpf之StackPanel、WrapPanel、WrapPanel之间的关系
    浅谈修饰符
  • 原文地址:https://www.cnblogs.com/goyier/p/1312696.html
Copyright © 2011-2022 走看看