当前位置: 首页 > news >正文

WorkFlow之顺序工作流学习

一、打开vs2008----添加新项目---顺序工作流控制台应用程序

二、在工具箱中找到IfElse。将它拖入到我们的设计界面上。

 

三、选择“ifElseBranchActivity1”---“属性”---选择Condition下拉列表中的“代码条件”,再输入处理事件的名称“isok”。回车,VS会自动的生成处理代码。

        private string str;
        public string Str
        {
            get { return str; }
            set { str = value; }
        }
        private void isok(object sender, ConditionalEventArgs e)
        {
            if (Str == "aa")
                e.Result = true;
            else
                e.Result = false;
        }

四、创建分支的处理程序。现在我们返回设计界面。向左右的分支拖入Code控件。

选择“codeActivity1”--属性ExecuteCode中输入“istrue”,回车,

        private void istrue(object sender, EventArgs e)
        {
            Console.WriteLine("is ok!");
        }

 

选择“codeActivity2”--属性ExecuteCode中输入“isfalse”,回车,

        private void isfalse(object sender, EventArgs e)
        {
            Console.WriteLine("is not ok!");
        }

 

五、至此。我们的workflow代码编写完毕。现在我们需要稍稍的修改下我们的Program.cs文件。打开Program.cs文件。找到

WorkflowInstance instance = workflowRuntime.CreateWorkflow(typeof...

在其上面插入以下代码用作传递参数到workflow中。

 

 

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();
                };
                Console.WriteLine("enter a word:");
                string str = Console.ReadLine();

                Dictionary<string, object> dic = new Dictionary<string, object>();
                dic.Add("Str", str);
                WorkflowInstance instance = workflowRuntime.CreateWorkflow(typeof(WorkflowConsoleTest1.Workflow1), dic);
                instance.Start();

                waitHandle.WaitOne();
                Console.ReadLine();
            }

转载于:https://www.cnblogs.com/yidianfeng/archive/2009/01/20/1378728.html

相关文章:

  • regsvr32修复系统故障
  • Windows XP终极优化设置精心整理篇(转载及修改)
  • 重装系统后,局域网其他机器无法访问本机的解决-间歇博客
  • ScriptManagerProxy控件
  • WebService大讲堂之Axis2(10):使用soapmonitor模块监视soap请求与响应消息
  • (转)Oracle 9i 数据库设计指引全集(1)
  • sqlserver2005新功能函数
  • 走向成功之路的秘密
  • VMWare-RHEL5系统添加多网卡
  • 关于“WebForm_PostBackOptions未定义”
  • 浅谈MVP与Model-View-ViewModel(MVVM)设计模式
  • Net 实现纳秒级别计算
  • WPF中的音频——(2)
  • WinCE读写ini文件和xml文件的方法
  • Linux GNOME桌面使用技巧大全
  • 【391天】每日项目总结系列128(2018.03.03)
  • 5分钟即可掌握的前端高效利器:JavaScript 策略模式
  • ABAP的include关键字,Java的import, C的include和C4C ABSL 的import比较
  • Javascript 原型链
  • java概述
  • Java知识点总结(JDBC-连接步骤及CRUD)
  • jquery cookie
  • JS实现简单的MVC模式开发小游戏
  • Node.js 新计划:使用 V8 snapshot 将启动速度提升 8 倍
  • 百度地图API标注+时间轴组件
  • 从0实现一个tiny react(三)生命周期
  • gunicorn工作原理
  • 阿里云移动端播放器高级功能介绍
  • ​secrets --- 生成管理密码的安全随机数​
  • # C++之functional库用法整理
  • #LLM入门|Prompt#2.3_对查询任务进行分类|意图分析_Classification
  • $(function(){})与(function($){....})(jQuery)的区别
  • (32位汇编 五)mov/add/sub/and/or/xor/not
  • (function(){})()的分步解析
  • (windows2012共享文件夹和防火墙设置
  • (二)Linux——Linux常用指令
  • (十二)devops持续集成开发——jenkins的全局工具配置之sonar qube环境安装及配置
  • (一)基于IDEA的JAVA基础1
  • (转)Android学习笔记 --- android任务栈和启动模式
  • (转)EOS中账户、钱包和密钥的关系
  • (转)JVM内存分配 -Xms128m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=512m
  • (转)菜鸟学数据库(三)——存储过程
  • ... 是什么 ?... 有什么用处?
  • .naturalWidth 和naturalHeight属性,
  • .NET Core 成都线下面基会拉开序幕
  • .net FrameWork简介,数组,枚举
  • .net 打包工具_pyinstaller打包的exe太大?你需要站在巨人的肩膀上-VC++才是王道
  • .NET 发展历程
  • .Net程序猿乐Android发展---(10)框架布局FrameLayout
  • .net解析传过来的xml_DOM4J解析XML文件
  • .NET是什么
  • /usr/bin/env: node: No such file or directory
  • []指针
  • [AIGC] Nacos:一个简单 yet powerful 的配置中心和服务注册中心
  • [AIGC] SQL中的数据添加和操作:数据类型介绍