0

2つの質問があります。1.ワークフロークラスが「SEALED」クラスなのはなぜですか?ワークフローを継承するのは悪い習慣ですか?2.whileアクティビティが遅い。IE.:シーケンスwfに3つのアクティビティをこの順序で配置します...Code_activity1While_activity Code_activity2(whileアクティビティ内)


Code_activity1-intカウンターを33320に設定します。While_activity-カウンター>0までループします。Code_activity2-カウンターを1つ減らします(counter--);

問題は、ワークフロー全体を実行するのに時間がかかりすぎることです(約20分)!!!

私がコードで同じことを手作業で行う場合:、

int counter = 33320;
while(counter>0)
    counter--;

約1ミリ秒かかります。

whileアクティビティがとても遅いのはなぜですか?

ありがとう

4

1 に答える 1

0

1)生成されたクラスが次のようにシールされていても

public sealed partial class Workflow1: SequentialWorkflowActivity

seal キーワードを削除して継承することを止めるものは何もありません。通常、設計して封印したワークフローから継承したくないと思いますが、パフォーマンス上の利点があると言われています

2) http://msdn.microsoft.com/en-us/library/ms735819.aspxでは、アクティビティがどのように機能するかについて少し説明しています。前述の子アクティビティの作成を 33320 回追加し、アクティビティの実行/初期化などで発生するすべてのイベントと、ワークフロー ランタイムが処理する必要があるすべての追加作業を追加すると、20 分が得られます。

于 2009-06-12T17:35:52.863 に答える