上篇播客中介绍了WorkflowApplication对象创建工作流和此对象的生命周期,本文继续介绍有关WorkflowApplication对象的内容--多线程和持久化。
1 为什么使用多线程
我们知道,WorkflowInvoker对象不支持多线程,当前任务和工作流流程共用一个线程,这样就造成了一种现象,我们在同一时间只能执行一件事,当前的业务和工作流的创建运行不能同时进行,降低了程序的执行效率,并且用户体验也不好;鉴于此,WF提供了WorkflowApplication对象以支持多线程,这样,我们的业务程序和工作流操作可以同时进行了,提高了程序执行效率,用户体验较好。
2 代码实现
1 为什么使用多线程
我们知道,WorkflowInvoker对象不支持多线程,当前任务和工作流流程共用一个线程,这样就造成了一种现象,我们在同一时间只能执行一件事,当前的业务和工作流的创建运行不能同时进行,降低了程序的执行效率,并且用户体验也不好;鉴于此,WF提供了WorkflowApplication对象以支持多线程,这样,我们的业务程序和工作流操作可以同时进行了,提高了程序执行效率,用户体验较好。
2 代码实现
//非继承自定义控件类,需要继承底层类
class naTiveActivityTest : NativeActivity
{
//定义两个输入参数和一个输出参数
public InArgument<int> input1 { get; set; }
public InArgument<int> input2 { get; set; }
public OutArgument<int> output { get; set; }
//自定义控件类默认执行的方法
protected override void Execute(NativeActivityContext context)
{
//从上下文获取输入参数,计算后得到输出参数,传入到上下文中
int getInput1 =