转自:Jiade's Talk 的blog
首先,我們開啟VS.NET2005,建立一個新的Sequential WorkFlow專案,並利用WWF提供的Activity,建立如下的流程,分別於DOS模式下輸出"FIRST"及"SECOND"字眼…
其次我們就要撰寫這兩個Code節點中所要執行的動作,您可以切換到code view,新增以下的兩個function
private void code1_ExecuteCode(object sender, EventArgs e)
{
Console.WriteLine("FIRST");
}
private void code2_ExecuteCode(object sender, EventArgs e)
{
Console.WriteLine("SECOND");
}
分別執行兩個不同的節點動作…執行編譯動作,您就已經完成流程設計的動作。
接下來就是要撰寫一個應用程式去執行這一段流程:
1.一樣開始VS.NET2005,建立一個Console應用程式
2.將以下CLASS加入參考 System.Workflow.* 以及我們剛剛建立的DLL檔案
3.撰寫以下程式碼
using System;
using System.Collections.Generic;
using System.Text;
using System.Threading;
using System.Workflow.Runtime;
using System.Workflow.Runtime.Hosting;
using System.Reflection;
namespace ConsoleTest
{
class Program
{
static AutoResetEvent waitHandle = new AutoResetEvent(false);
static void Main(string[] args)
{
try
{
Console.WriteLine("Start Application");
WorkflowRuntime wfr = new WorkflowRuntime();
wfr.StartRuntime();
System.Type type = typeof(myWorkflow2.Workflow1);
wfr.WorkflowCompleted += OnWorkflowCompletion;
wfr.StartWorkflow(type);
waitHandle.WaitOne();
Console.WriteLine("Application End");
Console.ReadLine();
wfr.StopRuntime();
}
catch { }
}
static void OnWorkflowCompletion(object sender, WorkflowCompletedEventArgs instance)
{
waitHandle.Set();
}
}
}
4.執行該Console程式您將會看到程式依序輸入 "FIRST" 和 "SECOND"
您可以試著再度開啟剛剛的流程設計專案,將code1和Code2的順序對調,存檔後,在執行一次,則輸出的順序就變成"SECOND"和"FIRST"