开发学院软件开发C语言 工作流编程循序渐进(1:代码活动与时间延迟活动)... 阅读

工作流编程循序渐进(1:代码活动与时间延迟活动)

 2010-09-30 20:57:59 来源:WEB开发网   
核心提示: 最后,我们来看一下控制台主程序是如何创建工作流实例,工作流编程循序渐进(1:代码活动与时间延迟活动)(3),并启动工作流执行的,切换到控制台主程序Program.cs,对于此事件,微软的建议是:不应使用此事件来设置 DelayActivity 的 TimeoutDuration,此时,系统已经为

最后,我们来看一下控制台主程序是如何创建工作流实例,并启动工作流执行的。切换到控制台主程序Program.cs。此时,系统已经为我们自动生成了如下代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Workflow.Runtime;
using System.Workflow.Runtime.Hosting;
namespace CodeAndDelay
{
    class Program
    {
        static void Main(string[] args)
        {
            //......经常在此添加一些初始化代码
            //创建工作流实例,并启动工作流执行。注意:工作流是以异步的独立的工作线程方式执行的
            using(WorkflowRuntime workflowRuntime = new WorkflowRuntime())
            {
                AutoResetEvent waitHandle = new AutoResetEvent(false);
                workflowRuntime.WorkflowCompleted += delegate(object sender, WorkflowCompletedEventArgs e) {waitHandle.Set();};
                workflowRuntime.WorkflowTerminated += delegate(object sender, WorkflowTerminatedEventArgs e)
                {
                    Console.WriteLine(e.Exception.Message);
                    waitHandle.Set();
                };
                WorkflowInstance instance = workflowRuntime.CreateWorkflow(typeof(CodeAndDelay.Workflow1));
                instance.Start();
                waitHandle.WaitOne();
            }
            //......在此经常执行一些工作流执行后的善后工作
        }
    }
}

注意:有关上面代码中AutoResetEvent事件等的详细讨论将在后续文章中介绍。

观察运行结果

按F5运行控制台程序,一般顺利的话,将得到如下图所示运行时快照。

工作流编程循序渐进(1:代码活动与时间延迟活动)

图片看不清楚?请点击这里查看原图(大图)。

完全合乎意料的结果,一切尽在不言中!

备注(FROM MSDN)

DelayActivity活动有一个InitializeTimeoutDuration 事件,它发生在在超时持续时间开始之前发生。对于此事件,微软的建议是:不应使用此事件来设置 DelayActivity 的 TimeoutDuration。而应在工作流的InitializeComponent 方法中设置超时持续时间。

出处: http://zhuxianzhong.blog.51cto.com/157061/203300

上一页  1 2 3 

Tags:工作流 编程 循序渐进

编辑录入:爽爽 [复制链接] [打 印]
[]
  • 好
  • 好的评价 如果觉得好,就请您
      0%(0)
  • 差
  • 差的评价 如果觉得差,就请您
      0%(0)
赞助商链接