您的位置:首页 > 其它

工作流学习过程-开篇

2010-10-22 16:08 225 查看
最近由于项目原因,比较闲,闲暇时间学习了下工作流方面的知识。版本为3.5
学习资料为wf高级程序设计
感觉书里内容比较基础、层次很清晰、代码全,非常适合工作流入门学习
先来看看什么是工作流?
流就是处理一件事情的步骤喽,那工作流就是要完成某项工作的步骤集合了(个人理解)
由于本人水平很哇。故不能提供代码的解释部分,紧提供实例及代码

例1.计算器
运行时效果如图所示

代码

private void btnEqual_Click(object sender, EventArgs e)
{
num2 = int.Parse(txt.Text);
using (WorkflowRuntime workflowRuntime = new WorkflowRuntime())
{
AutoResetEvent waitHandle = new AutoResetEvent(false);
workflowRuntime.WorkflowCompleted += delegate(object sender1, WorkflowCompletedEventArgs e1)
{
waitHandle.Set();
};
workflowRuntime.WorkflowTerminated += delegate(object sender1, WorkflowTerminatedEventArgs e1)
{
Console.WriteLine(e1.Exception.Message);
waitHandle.Set();
};

Dictionary<string, object> parameters = new Dictionary<string, object>();
parameters.Add("Num1", num1);
parameters.Add("Num2", num2);
parameters.Add("Operator", opera);

WorkflowInstance instance = workflowRuntime.CreateWorkflow(typeof(CalculatorWorkflowActivity), parameters);
instance.Start();
waitHandle.WaitOne();
txt.Text = result.ToString();
}
}


试运行。。结果呢?运行结果在哪里?

我们知道result现在应该是个空值,即使将值赋予txt控件也无济于事~

原来workflowRuntime的WorkflowCompleted事件提供的参数WorkflowCompletedEventArgs里的属性OutputParameters提供了提取操作结果的功能

只需在事件中将加入如下代码即可

result = (double)(e1.OutputParameters["Result"]);


再运行即可得到和我们之前windowsForm一样的东西了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: