打開vs2010,選擇新建項目
新建項目后看到的是初始的工作流程圖,下面顯示設計器中除了一個提醒你放置活動的信息外什么也沒有。在這個簡單的測試工作流中,打開vs2010的工具箱,找到基元(Primitives)
找到工具箱的基元(Primitives),找到WriteLine將其拖拽到設計器中,並在Text編輯器中輸入用雙引號括起的字符串信息,如下圖:

查看 XAML,關閉工作流設計器,在Solution Explorer中點擊Wrokflow1.xaml並選擇View Code菜單選項,這將顯示工作流的XAML描述,這些XML的文檔根節點為<Activity>,我們可以看到幾乎所有定義都內嵌了clr-namespace標記。下圖為我們建立的工作流XAML文件,里面只有一個WriterLine方法的節點
使用WorkflowInvoker承載工作流
打開Workflow項目中的Program.cs文件,可以看到Main方法:
static void Main(string[] args)
{
WorkflowInvoker.Invoke(new Workflow1());
}
當你只想簡單的啟動工作流而不希望進步一監控,使用WorkflowInvoker是十分有用的,Invoke()方法將以
同步阻塞方式執行工作流。在整個工作流結束或突然中斷前,調用線程都將保持阻塞狀態,由於Invoke()方法是同步調用,這確保了整個工作流在Main()終止前能夠完成,事實上,在WorkflowInvoker.Invoke()方法之后添加的任何代碼,都將在工作流完成(或更糟的情況,突然終止等)之后才能執行
static void Main(string[] args)
{
WorkflowInvoker.Invoke(new Workflow1());
Console.WriteLine("結束了");
}
上面的”結束了“只能等到工作流結束或者中斷后才能執行。