我是工作流基础新手,想了解 ActivityAction
的用途和ActivityFunc
以及它与 child 事件有何不同。
据我所知,子事件可能存在于某些组合中 NativeActivity
并且必须由它安排。因此子事件可能由 NativeActivity
使用作为执行期间的事件处理程序。例如,这个 NativeActivity 可能会运行一些长时间运行的计算,并在完成时安排其子事件。
ActivityAction
和ActivityFunc
(func 返回结果而 action 不返回)出于相同目的而存在 - 允许在 NativeActivity
中定义的执行过程中插入自定义处理程序。 。不同之处在于它们是强类型的,看起来更像是其父级声明的契约(Contract)。
所以我得出的结论是,主要区别在于强类型,并且 ActivityFunc/Action 可能会与子事件交换。是我的理解有误还是我遗漏了什么?
最佳答案
ActivityAction 和 ActivityFunc 的主要目的是您可以在您的 Activity 和子 Activity 之间共享数据。大多数时候您不需要这样做,您只需安排一个子事件,它就可以使用 InArguments 来获取数据。但在某些情况下,例如 ParallelForEach,父级不能只填充变量,因为每个子级都是并行调度的。在这种情况下,您希望在安排子事件时传递数据。这就是 ActivityAction 的用武之地。
但在大多数情况下,您不需要使用 ActivityAction 和 ActivityFunc。
关于c# - WF 4 : difference between ActivityAction or ActivityFunc and child activity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12435837/