[WF4.0 实战] WF4.0 Receive && Send
来源:互联网 发布:接吻男生生理反应知乎 编辑:程序博客网 时间:2024/05/01 21:17
写这篇博客的目的是因为对于这个receive和send的使用一直很困惑,很多实例中都有应用,但是总感觉理解的很模糊,每次遇到都要再重新梳理,现在将这send和receive结合我们之前做的实例(未使用WCF)来理解,其实这两个看似深奥的东东,和我们已经掌握的工作流知识没有什么大的差别!
下面就结合着之前的工作流的知识和send,receive来对比一下:
因为一个流程不可能是不间断的执行,再次启动时需要从当时的断点继续
实现方式两种:
对比:
1,Receive
当我们客户端调用Receive的方法时,即可继续进行这个流程。
2,BookMark
客户端调用WorkFlowProcess.RunInstance(info),即可继续进行,但是我们在暂停之前需要执行Wait流,即创建BookMark,下次从书签处继续执行这个流程
下面简单介绍一下Receive的使用方式,对于BookMark的创建在申请审批中已经有所介绍:
Receive中的方法,代理类会自动生成该方法---客户端调用代理类生成的方法---相当于启动receive的方法
receive的返回(命令窗口的返回):调用的方法会传guid等参数,然后将这写参数赋给工作流定义的变量_guid
或者receive返回到客户端:
与Receive对应的还有一个Send:
Send中的方法,可以调用webService或WCF服务中的方法,下面的这个说明调用的是webService中的提供的方法,在服务端创建了接口和相应的实现类
返回值后缀+result
客户端:
private void button1_Click(object sender, RoutedEventArgs e) { IDictionary<string, object> results = WorkflowInvoker.Invoke(new WFProject.Activity1()); string result = results["returnView"].ToString(); MessageBox.Show(result); }
对比:
1,send方式:消息
2,代码活动(CodeActivity):用户自定义的活动结点
通过上述的说明,我们不难发现其实这个Send的使用方式和我们之前自己写的CodeActivity(代码结点)没什么区别,只是它是以消息的方式传递而已!
总结:就像我在文章开头所说的,对于新的知识我们总是很难掌握,这时就需要和我们已有的知识相关联(编制知识网),拿send和receive来说,因为和已有的知识进行了比较学习,这样当再次遇到的时候我们就可以很好的理解,也就不会出现每次都当做新的知识去学习一遍!
学习不仅仅是知识的罗列,而在于对知识的总结过程!
- [WF4.0 实战] WF4.0 Receive && Send
- [WF4.0 实战] WF4.0申请审批实例
- WF4.0实战:超市收银软件
- WF4.0实战(三):WCF服务
- [WF4.0 实战] 事件驱动应用
- WF4.0 学习系列
- WF4.0_1
- WF4.0_2
- WF4.0_3
- WF4.0_4
- WF4.0与多线程
- WF4.0和BookMark
- WF4.0持久化
- wf4
- [WF4.0 实战] AutoResetEvent详解(线程独占访问资源)
- WF4.0 基础篇 (十四) Delay 与WF4中的线程
- WF4.0(2)----设计工作流
- WF4.0实战(十二):ASP.NET MVC2.0结合WF4.0实现用户多步注册流程
- 在堆中创建数组是不是就可以用变量作为数组的下标呢?
- bugzilla whlining
- SSH连接虚拟机问题
- 第九周项目3-(c)
- XML解析
- [WF4.0 实战] WF4.0 Receive && Send
- 实现一个数字电路的脚本解释器(零)——约定
- URL最大长度问题
- BigEnddian 字节序
- 导航 新随笔 管理 linux 多线程编程 --比较老 是 LinuxThread
- iOS开发隐藏键盘方法总结
- Android 网络交互(二)熟识OSI模型和TCP/IP协议
- 求一元二次方程
- 利用selector设置ImageButton不同状态下的背景图片 .