学WF系列(五)——工作流模拟猜数游戏
2010-10-01 08:24:35 来源:WEB开发网完整代码示例如下:
Workflow1.cs
public sealed partial class Workflow1 : SequentialWorkflowActivity
{
private int input;
private int result;
private int count;
public int Count
{
get { return count; }
}
public int Result
{
set { result = value; }
}
public Workflow1()
{
InitializeComponent();
}
private void CodeActivity1_ExcuteCode(object sender, EventArgs e)
{
Console.WriteLine("请输入你要判断的数:");
string s = Console.ReadLine();
input = Convert.ToInt32(s);
count++;
}
private void codeActivity2_ExecuteCode(object sender, EventArgs e)
{
Console.WriteLine("成功");
}
}
Program.cs:
class Program
{
static void Main(string[] args)
{
using(WorkflowRuntime workflowRuntime = new WorkflowRuntime())
{
AutoResetEvent waitHandle = new AutoResetEvent(false);
object count = null;
workflowRuntime.WorkflowCompleted += delegate(object sender, WorkflowCompletedEventArgs e) {
count = e.OutputParameters["Count"];
waitHandle.Set();
};
workflowRuntime.WorkflowTerminated += delegate(object sender, WorkflowTerminatedEventArgs e)
{
Console.WriteLine(e.Exception.Message);
waitHandle.Set();
};
Random r = new Random();
int result = r.Next(10);
Dictionary<string, object> dic = new Dictionary<string, object>();
dic.Add("Result", result);
WorkflowInstance instance = workflowRuntime.CreateWorkflow(typeof(WorkflowConsoleApplication5.Workflow1),dic);
instance.Start();
waitHandle.WaitOne();
Console.WriteLine("您猜了" + count.ToString() + "次");
}
}
}
4. 提示
在这里,很多朋友都问我,我们用工作流究竟干吗?工作流究竟有什么用?之前的这些例子,用代码不也一样写得很好么?
因此,我觉得有必要再次重申工作流的意义和用途。
工作流为我们提供的一个宏观的框架,我们用工作流搭建出来的应该是一个复杂的业务流程,或者他们事件驱动,或者他们顺序执行。
他们的过程一般不会像登陆,猜数这样简单,而需要持久化,或者持久化到磁盘文件中,或者持久到数据库中。这些我们在后文中都会提及到。
我们在这里只要记得,工作流为我们解决的是一个宏观的时事件过程。
5. 总结
在本文中,我们主要介绍了While活动的用法,以及工作流与宿主程序之间的参数传递问题。
还是希望大家把代码自己敲一遍,加深记忆。
系列文章:
学WF系列(一)——Hello world开始
学WF系列(二)——工作流与Visual Studio
学WF系列(三)
学WF系列(四)——工作流模拟登陆
- ››WF 4.0 beta1中的跟踪机制
- ››WF 4.0的建模风格:顺序和Flowchart
- ››WF4.0 Beta1之旅(5):规则引擎的变化
- ››WF 4.0 beta1活动概览(1):Procedural
- ››WF4.0 Beta1之旅(4):Bookmark的使用
- ››WF4.0 Beta1之旅:基本介绍
- ››WF4.0 Beta1之旅(2):异常处理
- ››WF4.0 Beta1之旅(3):全新的FlowChart
- ››WF 应用场景指南: SharePoint 与工作流(上)
- ››WF 应用场景指南: 展现流(Presentation Flow)
- ››WF单元测试系列1:测试基本的Activity
- ››WF单元测试系列2:简单测试Activity的行为
更多精彩
赞助商链接