打开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("结束了");
}
上面的”结束了“只能等到工作流结束或者中断后才能执行。