Red*_*zon 2 workflow-foundation-4
我正在学习WF4并被困在以下地方.请帮忙.谢谢.
1)我在名为Worker的静态类中创建了一个静态方法MyMethod.在这个方法中,我调用Thread.Sleep(3000),然后打印调用"MyMethod".
2)然后我创建了一个活动DoWork(DoWork.xaml),它包含一个InvokeMethod(目标类型是步骤1中的Worker类,MethodName = MyMethod).
3)在main方法中,我调用了两个名为OutputSequence()和OutputParallel()的方法,如下所示
private static void OutputSequence()
{
Sequence s = new Sequence() { Activities = new DoWork(), new DoWork() } };
WorkflowInvoker.Invoke(s);
}
private static void OutputParallel()
{
Parallel p = new Parallel() { Branches = new DoWork(), new DoWork() } };
WorkflowInvoker.Invoke(p);
}
Run Code Online (Sandbox Code Playgroud)
OutputSequence()是正常的,因为它调用目标方法两次(按顺序),但并行方法似乎也顺序执行.我希望它能并行执行.
我错过了什么
并行活动不是您认为的那样 - 它允许您并行等待并不执行并行执行基于CPU的代码.WF4线程模式是工作流中一次只有一个线程处于活动状态.
如果你在并行中放入两个延迟,则这两个等待将并行发生,而不是顺序发生
这个想法是你想要等待一些行动,你不知道它们将发生的顺序.然后,当所有子分支完成时,并行活动就完成了
| 归档时间: |
|
| 查看次数: |
1749 次 |
| 最近记录: |