上回我们看到了两个简单的例子。
在第三个例子中,在program.cs中创建工作流时,我们用到了WorkflowRuntime的对象,通过它我们创建并启动了工作流实例。
一、WorkflowRuntime是干什么的。
先来看张图。
从这张图中可以看出,工作流运行时(WorkflowRuntime)监管工作流运行的过程。用它启动一个独立的工作流任务。在执行过程中,运行时会针对不同的情况响应对应的事件。并且还可以在你的执行环境中增加一个附加的服务保持跟踪。
工作流和应用程序并行执行,应用程序作为宿主,应用程序可以是Windows Form应用程序,控制台,Asp.NET Web应用,也可以是一个Windows Server。工作流和应用程序运行在同一个应用程序域,每个应用程序域只能有一个工作流实例。
二、一个例子
首先新建一个工作流控件台程序,命名为WorkflowHost。
为工程添加System.Workflow.Runtime的引用。
打开Program.cs。添加“using System.Workflow.Runtime;”
在Main方法下,添加:
WorkflowRuntime workflowRuntime = newWorkflowRuntime();
编译。
三、WorkflowRuntime对象的常用属性和方法
属性
IsStarted : 指明workflow运行时是否已启动并准备接受workflow实例。宿主启动工作流前为false,直到停止工作流变为true。注意为true时不能增加核心服务。
Name : 获取和设置与运行时关联的名字。运行时正在运行中时不可以设置这个属性,否则将抛出异常。
方法
AddService : 为workflow运行时添加指定的服务 。
CreateWorkflow : 创建一个workflow实例,可包含一些参数。假如workflow运行时没有启动,该方法会调用StartRuntime方法。
GetWorkflow : 通过指明workflow实例的标识符(一个Guid)来检索workflow实例。假如这个实例是空闲的持久化保存的,它将被重新加载并执行。
StartRuntime : 启动workflow运行时和相关服务,并引发“Started”事件。
StopRuntime : 停止workflow运行时和相关服务,并引发“Stopped”事件。
还有更多关于WorkflowRuntime的方法。Workflow运行期间,会在各种时间引发各种事件。