0

約12,000件のレコードがあります。

ワークフローアクティビティの1つで、12,000のレコードすべてを処理し、各レコードで別のアクティビティを手動で呼び出します。

行は次のようになります。

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

約11,500番目のレコードで、保護されたメモリに到達したというメッセージとともにAccessViolationExceptionが発生します。

タスクマネージャの[パフォーマンス]タブで、メモリ消費量が増加していることがわかります。

上記のコードが各レコードの相互作用でメモリを増加させないようにするにはどうすればよいですか?最終的にメモリを節約しますか?

ありがとう、ジョシュア

4

1 に答える 1

1

別のワークフロー内でまったく新しいワークフローを呼び出していますか?

これを捨てなさい。NativeActivity を作成し、 Executeメソッド内で NativeActivityContext.ScheduleFunc を使用して子アクティビティ (そのワークフロー) をスケジュールします。コールバックで、結果に対して必要なことを行い、次のレコードをスケジュールします。

于 2012-07-26T12:17:16.817 に答える