WorkflowInvoker,WorkflowApplication和WorkflowServiceHost

WF4.0中提供了3中不同的方式来管理/托管工作流实例。

WorkflowInvoker

提供了一种调用Workflow的快速通道WorkflowInvoker。可以直接通过调用静态方法Invoke来执行一个工作流

可以像执行一个函数一样运行一个工作流。

优点:简单

缺点:在工作流执行过程中,如果和工作流实例进行数据交换

代码:

            WorkflowInvoker.Invoke(new Workflow1());

 

WorkflowApplication

可以控制工作流实例长时间运行,可以在运行过程中和实例进行数据交换。但是只能执行一个的工作流实例。

优点:

支持持久化,可以对实例进行控制,可以通过Bookmark来控制实例或交换数据。

应用例子:

使用工作流辅助建立一个向导的UI程序。

代码:

            WorkflowApplication instance = new WorkflowApplication(new Workflow1());

 

            instance.Completed = delegate(WorkflowApplicationCompletedEventArgs e)

            {

                Console.WriteLine("workflow completed, Id = " + instance.Id);

            };

 

            instance.Run();

            //....

            instance.ResumeBookmark("Submit", data);

 

WorkflowServiceHost

WorkflowServiceHost是一个最主要的工作流主机类。可以同时管理多个工作流实例,同时控制实例的激活等操作。支持WCF,和3.5相比有更强大的消息关联功能。当然WorkflowServiceHost也支持持久化(Persistence)和跟踪(Tracking)等功能。

posted @ 2009-11-19 15:15  学无止境-139  阅读(414)  评论(0编辑  收藏