2013-08-29 60 views
0

从某些文章中阅读,并行活动不会在不同的线程中执行子活动,除非子活动本身是异步的。 因此,我只创建了一个名为AsyncTask的自定义AsyncTask,其中有一个Activity(名为SyncActivity)作为InArgument,并在BeginExecute内调用Task.Factory.StartNew(()=> WorkflowInvoker(SyncActivity))。 但我也想要一个设计器,它看起来与Parallel Activity完全相似,并且具有相同的功能(例如将一些活动拖放到其中一个分支中)作为并行活动。但是当某个活动被拖放到某个活动分支,它应该在内部使用AsyncTask AsyncActivity异步运行。 我该怎么做?WF4自定义并行活动

回答

1

我明白你的问题。建立一个活动设计师(WF中的控制)并不难。只需使用WorkflowItemPresenter like shown on MSDN即可。

为了满足您的进一步要求,我们必须记住活动需要参数。您必须通过外部AsyncActivity将它们传递给您的SyncActivity。因此,您必须通过动态创建的输入控件来增强您的活动设计器。创建您需要访问SyncActivity的公共属性(例如Reflection)的人员。我发现很难访问内部活动,因为你必须通过一个所谓的“ModelItem”来工作。 更简单的方法可能是通过创建一个变量链来传递参数。

顺便说一下:任务工厂可以帮助您创建任务,但不会强制创建新线程。只要保持任务/线程模型考虑;-)

问候 月

+0

感谢扬和道歉对我的延迟response.Whateverü说是相当helpful.Thanks一次。 –