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

工作流程式設計漸進指南(一):Code 與 Delay 活動入門

     編輯:關於C#

一、建立專案

  1. VS2008 新增控制台循序工作流,命名 CodeAndDelay。
  2. 新增專案
  3. 拖入 Code、Delay、Code 三個活動。
  4. 設計器 三個活動

二、Code 活動編寫程式碼

雙擊 Code 活動進入 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);
        }
    }
}

三、Delay 活動設定

屬性視窗設定 TimeoutDuration = 00:00:05(5 秒)。

四、宿主程式標準模板

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())
            {
                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();
            }
        }
    }
}

五、執行結果

活動一輸出時間 → 5 秒延遲 → 活動二輸出時間(相差 5 秒)。

執行結果

備註

MSDN 建議:DelayActivity 的 InitializeTimeoutDuration 事件不應用於設定 TimeoutDuration,應在 InitializeComponent 中設定。

出處

https://zhuxianzhong.blog.51cto.com/157061/203300

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