没有合适的资源?快使用搜索试试~ 我知道了~
首页WF入门到精通:Word文档中的工作流程详解
WF入门到精通:Word文档中的工作流程详解
需积分: 10 3 下载量 194 浏览量
更新于2024-07-31
1
收藏 5.61MB DOCX 举报
"《通俗易懂的WF从入门到精通word文档》是一份全面介绍Windows Workflow (WF)技术的教程,适合初学者和进阶者阅读。该文档按照章节逐步深入,从WF的基本概念、运行机制到实战应用,涵盖了WF的核心要素和关键技能。 第一章介绍了WF的概论,让读者理解工作流的概念,与BizTalk和WCF进行对比,以及如何在Visual Studio环境中进行编程。WF是Microsoft的业务流程自动化框架,通过图形化的设计器和代码实现,简化复杂流程管理。 第二章至第十六章详细解析了WF的不同组件和功能:从工作流实例的运行、活动类型(如基本活动、逻辑流活动、事件活动和并行活动)到调用外部方法、使用策略和规则,以及自定义活动的开发。此外,还涉及到了基于状态的工作流、工作流与事务处理以及明式工作流的概念。 在实际操作中,文档举例了一个邮政编码验证的工作流程序,展示了如何在WF中执行类似业务逻辑,比如使用正则表达式验证美国和加拿大的邮政编码,这有助于读者理解WF如何应用于日常开发。 第十七章关注于WF与其他系统交互,如关联数据和本地主机通信,这对于理解WF在分布式环境中的应用至关重要。 在整个学习过程中,读者不仅能掌握WF的基础知识,还能通过一步步实践,提高编程和设计工作流的能力。无论是初次接触WF的新手,还是希望提升WF技能的开发者,这份文档都是一个宝贵的资源。通过阅读和实践,读者可以逐步精通WF,将其融入到自己的项目开发中,提高业务流程的自动化和效率。"
资源详情
资源推荐
![](https://csdnimg.cn/release/download_crawler_static/3508125/bg10.jpg)
第 14 页 共 546 页
调用 StopRuntime 方法会卸载所有正执行的 workflow 和服务并关闭 workflow 运
行时环境。当然,正确调用 StopRuntime 位置是在你申请停止逻辑结束之前或者
应用程序域关闭前调用。
1.打开 WorkflowFactory.cs 文件并定位到下面的代码上
_workflowRuntime = new WorkflowRuntime();
2.在上面代码的前面增加以下代码:
_workflowRuntime.Starttime();
3.在 WorkflowFactory.cs 中增加 StopWorkflowRuntime 事件处理函数:
static void StopWorkflowRuntime(object sender, EventArgs e)
{
if (_workflowRuntime != null)
{
if (_workflowRuntime.IsStarted)
{
try
{
_workflowRuntime.StopRuntime();
}
catch (ObjectDisposedException)
{
}
}
![](https://csdnimg.cn/release/download_crawler_static/3508125/bg11.jpg)
第 15 页 共 546 页
}
}
以下是 WorkflowFactory.cs 文件的完整源代码,在第五章之前我们不会做更
多的改变:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Workflow.Runtime;
namespace WorkflowHost
{
public static class WorkflowFactory
{
//workflow runtime 的单一实例
private static WorkflowRuntime _workflowRuntime = null;
private static object _syncRoot = new object();
//工厂方法
public static WorkflowRuntime GetWorkflowRuntime()
{
//多线程环境下防止并发访问
lock (_syncRoot)
{
![](https://csdnimg.cn/release/download_crawler_static/3508125/bg12.jpg)
第 16 页 共 546 页
if (null == _workflowRuntime)
{
AppDomain.CurrentDomain.ProcessExit += new
EventHandler(StopWorkflowRuntime);
AppDomain.CurrentDomain.DomainUnload += new
EventHandler(StopWorkflowRuntime);
_workflowRuntime = new WorkflowRuntime();
_workflowRuntime.StartRuntime();
}
}
return _workflowRuntime;
}
static void StopWorkflowRuntime(object sender, EventArgs e)
{
if (_workflowRuntime != null)
{
if (_workflowRuntime.IsStarted)
{
try
{
_workflowRuntime.StopRuntime();
}
![](https://csdnimg.cn/release/download_crawler_static/3508125/bg13.jpg)
第 17 页 共 546 页
catch (ObjectDisposedException)
{
}
}
}
}
}
}
现在我们有了一个 workflow 运行时的创建工厂,然后我们将修改我们的主
程序来使用它。
使用 workflow 运行时创建工厂
1.打开 Program.cs 文件并定位到如下代码上:
WorkflowRuntime workflowRuntime=new WorkflowRuntime();
2.把上面的代码修改成以下代码:
WorkflowRuntime
workflowRuntime=WorkflowFactory.GetWorkflowRuntime();
表 2-3 workflow 运行时的相关事件描述
事件
功能
Started
当 workflow 运行时启动后激发。
Stopped
当 workflow 运行时停止后激发。
WorkflowCompleted
当一个 workflow 实例完成后激发。
WorkflowIdled
当一个 workflow 实例进入空闲状态时激发。当 workflow 实例进入了空闲状态后,
你就有机会把他们从内存中卸载掉、存储到数据库并可在稍后的时间把它们加载进
![](https://csdnimg.cn/release/download_crawler_static/3508125/bg14.jpg)
第 18 页 共 546 页
内存。
WorkflowTerminated
当一个 workflow 实例被终止后激发。在宿主中调用一个 workflow 实例的 Terminat
e 方法、或通过一个 Terminate 活动、或当 workflow 运行时产生一个未经捕获的异
常时都会终止该 workflow。
我们还将在第四章和第五章介绍更多的事件。
在我们为上面的事件添加相应的事件处理程序时,你会看到生成的代码和上
一章我们创建的基于工作台的顺序工作流应用程序中的代码完全一样(或几乎完
全一样)。为了看看这些事件的作用,我们需要停止应用程序主线程一段时间。
因此,我们使用一个基于内核的自动重置事件。一会儿后,我们将写出一些代码
来使用上述事件中的几个,你需要不时看看第一章中 PCodeFlow 项目中的
Program.cs 文件,对比它们的不同以及该写入什么样的代码。尽管它们并不完全
相同,但你在两个程序中还是能找到相同的内容。
处理 workflow 运行时事件
1.启动 Visual Studio,打开项目的 Program.cs 源文件,定位到下面的代码上:
WorkflowRuntime
workflowRuntiem=WorkflowFactory.GetWorkflowRuntime();
2.假如你用过.NET 的委托,下面的代码你将非常熟悉。我们需要为我们感
兴趣的事件增加相应的事件处理程序。我们现在就来为 workflow 空闲时和完成
后增加相应的事件处理程序。稍候我们还会增加我们所需要的更多的事件处理程
序。记住,下面的代码在步骤 1 定位的代码的下面:
workflowRuntime.WorkflowIdled += new
EventHandler<WorkflowEventArgs>(workflowIdled);
3.下面的代码添加了对 workflow 完成后的事件处理:
workflowRuntime.WorkflowCompleted += new
剩余547页未读,继续阅读
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![7z](https://img-home.csdnimg.cn/images/20210720083312.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://profile-avatar.csdnimg.cn/edc7c63984934736b9369ac8a03ad27d_sjf8013.jpg!1)
乐韬科技
- 粉丝: 54
- 资源: 107
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![](https://csdnimg.cn/release/wenkucmsfe/public/img/voice.245cc511.png)
最新资源
- Hadoop生态系统与MapReduce详解
- MDS系列三相整流桥模块技术规格与特性
- MFC编程:指针与句柄获取全面解析
- LM06:多模4G高速数据模块,支持GSM至TD-LTE
- 使用Gradle与Nexus构建私有仓库
- JAVA编程规范指南:命名规则与文件样式
- EMC VNX5500 存储系统日常维护指南
- 大数据驱动的互联网用户体验深度管理策略
- 改进型Booth算法:32位浮点阵列乘法器的高速设计与算法比较
- H3CNE网络认证重点知识整理
- Linux环境下MongoDB的详细安装教程
- 压缩文法的等价变换与多余规则删除
- BRMS入门指南:JBOSS安装与基础操作详解
- Win7环境下Android开发环境配置全攻略
- SHT10 C语言程序与LCD1602显示实例及精度校准
- 反垃圾邮件技术:现状与前景
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035111.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![](https://csdnimg.cn/release/wenkucmsfe/public/img/green-success.6a4acb44.png)