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="白天好!"}
    }


    }

    }

    }


    };

    }
    }
    }

  • 相关阅读:
    android之APN
    Simple XML
    Retrofit – Java(Android) 的REST 接口封装类库
    Android 删除短信
    解决android:background背景图片被拉伸问题
    人分三等,你是哪一等?
    将android中的sample例子到eclipse中
    linux内存管理
    Android 使用android-support-multidex解决Dex超出方法数的限制问题,让你的应用不再爆棚(转)
    使用maven创建web项目
  • 原文地址:https://www.cnblogs.com/dlf-myDream/p/4617507.html
Copyright © 2011-2022 走看看