首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

工作流程式設計循序漸進 (1-2):代碼活動與延遲活動屬性設定

     編輯:關於C語言

CodeActivity 與 DelayActivity 事件撰寫與屬性配置完整步驟

一、CodeActivity 事件處理撰寫

雙擊設計器圖標進入 Workflow1.cs 撰寫 ExecuteCode 事件:


namespace CodeAndDelay {
    public sealed partial class Workflow1 : SequentialWorkflowActivity {
        public Workflow1() { InitializeComponent(); }
        
        private void codeActivity1_ExecuteCode(object sender, EventArgs e) {
            Console.WriteLine("\n這裡是活動一的執行代碼,當前時間為{0}。", DateTime.Now);
        }
        
        private void codeActivity2_ExecuteCode(object sender, EventArgs e) {
            Console.WriteLine("\n這裡是活動二的執行代碼,當前時間為{0}。", DateTime.Now);
        }
    }
}

二、DelayActivity 屬性設定

選取延遲活動圖標,屬性視窗設定 TimeoutDuration = 00:00:05 (時:分:秒格式)。

三、主控台宿主程式啟動工作流


using System;
using System.Workflow.Runtime;
using System.Workflow.Runtime.Hosting;
using System.Threading;

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 同步等待完成。詳細討論留待後續文章。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved