程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 工作流編程循序漸進(2:IfElseActivity活動)(4)

工作流編程循序漸進(2:IfElseActivity活動)(4)

編輯:關於C語言

3.設置codeActivity1活動的ExecuteCode方法代碼如下:

private void codeActivity1_ExecuteCode(object sender, EventArgs e)
{
 Console.WriteLine("請選擇您的角色:(C-普通客戶;A-系統管理員;P-過客)");
 rolename = Console.ReadLine();
}

4.設置最後面那個codeActivity2活動的ExecuteCode方法代碼如下:

private void codeActivity2_ExecuteCode(object sender, EventArgs e)
{
 Console.Read();
}

5.另外,設置Delay活動延遲3秒鐘非常簡單,不贅述。

至此,完成了整個工作流部分的設計工作。非常直觀簡單!最後,別忘記把上面文件保存一下。

最後,我們來看一下控制台主程序是如何創建工作流實例,並啟動工作流執行的。切換到控制台主程序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())
   {
   utoResetEvent 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運行控制台程序,一般順利的話,將得到如下圖所示運行時快照。

第一個界面:

接下字母a,並按下回車鍵,得到下圖:

無他復雜設計,不再贅述。

五、小結

在本文中我們學習了IfElseActivity活動的使用過程,在下一篇中將學習另外幾個基本活動--While活動,ConditionalActivityGroup活動,Replicator活動等待。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved