由Workflow.Invoker引起的AccessViolationException

时间:2012-07-26 07:35:22

标签: c# .net workflow workflow-foundation-4

我有大约12,000条记录。

在我的一个工作流活动中,我整理了所有12,000条记录,并在每条记录上手动调用另一个活动。

该行看起来像:

IDictionary<string, object> results = WorkflowInvoker.Invoke(childActivity, args);

关于第11,500条记录,我收到AccessViolationException,并显示已到达受保护内存的消息。

我可以在任务管理器的“性能”选项卡中看到内存消耗量上升。

如何保持上述代码不增加每个记录的内存,从而最终节省内存?

谢谢, 约书亚

1 个答案:

答案 0 :(得分:1)

您是在不同的工作流程中调用全新的工作流程吗?

放弃这个。创建NativeActivity并在Execute方法中使用NativeActivityContext.ScheduleFunc计划您的子活动(该工作流程)。在回调中,对结果执行您需要的操作,然后安排下一条记录。