zoukankan      html  css  js  c++  java
  • .Net WorkFlow 的简单例子

    Program.cs 后台代码:

    class Program
    {
    static void Main(string[] args)
    {
    //Activity workflow1 = new Workflow1();
    //WorkflowInvoker.Invoke(new Workflow1());
    WorkflowInvoker.Invoke(MyCodeWorkFlow.CreateWorkFlow());
    Console.ReadLine();
    }
    }

    WorkFlow例子 代码 :

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Activities;
    using System.Activities.Expressions;
    using System.Activities.Statements;

    namespace WorkflowConsoleApplication1
    {
    public class MyCodeWorkFlow
    {
    public static Activity CreateWorkFlow()
    {
    //定义两个变量:时钟响几次数,现在的时间(小时)
    Variable<int> count = new Variable<int>()
    {
    Name="count",
    Default=0
    };
    Variable<int> timeNowHour = new Variable<int>()
    {
    Name="timeNowHour",
    Default=DateTime.Now.Hour

    };
    //Sequence 是Activity的子类,里面写逻辑思维
    return new Sequence()
    {
    DisplayName = "Main Sequence",
    Variables = { count, timeNowHour },//表示 全局变量可以在这个域 里使用
    //声明一种活动
    Activities = {
    new WriteLine(){
    DisplayName="问候",
    Text="Hello World !"
    },
    new If()
    {
    DisplayName="判断",
    Condition=ExpressionServices.Convert<bool>(u=>timeNowHour.Get(u)>12),
    Then=new Assign<int>()//Assign 相当于 给某个变量赋值
    {
    To=timeNowHour,// 给 哪个 变量赋值
    Value=new InArgument<int>(m=>timeNowHour.Get(m)-12) // 赋 什么值
    }
    },
    new Sequence()
    {
    DisplayName="时钟报时",
    Activities={
    new While()
    {
    Condition=ExpressionServices.Convert<bool>(u=>count.Get(u)<timeNowHour.Get(u)),
    Body=new Sequence()
    {
    Activities={
    new Assign<int>(){To=count,Value=new InArgument<int>(m=>count.Get(m)+1)},
    new WriteLine(){DisplayName="报时", Text=new InArgument<string>(u=>count.Get(u).ToString())},
    //延时,每隔1秒 ,报时一次
    new Delay(){Duration=TimeSpan.FromSeconds(1)}
    }
    }

    }

    }

    },
    new Sequence() //Sequence 可以理解成 内部类
    {
    DisplayName="当前时间",
    Activities={
    new WriteLine(){ Text=string.Format("当前时间为:"+DateTime.Now.ToString())}
    }

    },
    new Sequence()
    {
    DisplayName ="根据时间的不同 来问好!",
    Activities={
    new If(){Condition=ExpressionServices.Convert<bool>(u=>DateTime.Now.Hour>=18),
    Then=new WriteLine(){Text="晚上好!"},
    Else=new WriteLine(){ Text="白天好!"}
    }


    }

    }

    }


    };

    }
    }
    }

  • 相关阅读:
    “ODBC驱动程序不支持动态记录集”错误的解决
    Pro *C/C++学习笔记(一)
    探讨全局变量的析构顺序
    指针和数组关系初探
    (转)Visual C++开发工具与调试技巧整理
    对利用Session纪录datagrid模板列中CheckBox的状态的一点改进
    大学老师列传
    重读保尔的意义
    Rich Edit控件的使用
    C++程序员常用工具集
  • 原文地址:https://www.cnblogs.com/dlf-myDream/p/4617507.html
Copyright © 2011-2022 走看看