第一个C#工作流

打开vs2010,选择新建项目

第一个C#工作流

新建项目后看到的是初始的工作流程图,下面显示设计器中除了一个提醒你放置活动的信息外什么也没有。在这个简单的测试工作流中,打开vs2010的工具箱,找到基元(Primitives)
第一个C#工作流

找到工具箱的基元(Primitives),找到WriteLine将其拖拽到设计器中,并在Text编辑器中输入用双引号括起的字符串信息,如下图:
第一个C#工作流
 查看 XAML,关闭工作流设计器,在Solution Explorer中点击Wrokflow1.xaml并选择View Code菜单选项,这将显示工作流的XAML描述,这些XML的文档根节点为<Activity>,我们可以看到几乎所有定义都内嵌了clr-namespace标记。下图为我们建立的工作流XAML文件,里面只有一个WriterLine方法的节点
第一个C#工作流
下面我们Ctrl+F5运行程序,如图所示,显示我们在Text内输入的内容
第一个C#工作流

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

 

posted @ 2015-08-04 15:47  倾城风云  阅读(10228)  评论(0编辑  收藏  举报