複数インスタンス同期

この例では、複数の互いに独立したブランチ(複数独立インスタンス構成体の中で実行されます)が、プロセス内の 1 つのアクティビティで収束します。この例を実装するには、ループと非同期タイプのイベントを使用します。

  • 各ブランチインスタンス(複数独立インスタンス構成体の中で実行されます)の最後に、非同期タイプのイベントをスローします。

  • 複数独立インスタンス構成体に含まれているループに続く別のループの中に、スローされたイベントタイプのレシーバーがあります。このレシーバーは、独立アクティビティのインスタンスが完了するたびに実行されます。

  • レシーバーの実行回数は、カウンターに記録されます。

    この例の実装は、複数独立インスタンス構成体の実装に、ゲートウェイ要素とイベントのどちらを使用したかによって異なります。

ゲートウェイを使用した実装

次の図には、以下の要素があります。

  • ゲートウェイ(複数独立インスタンス構成体)内のブランチの最後に行われるイベントスロー

  • ループ内のイベントレシーバー(完了したブランチの数の記録に使用)

    フルサイズのグラフィックを表示
    A.
    複数独立インスタンス構成体内のブランチでイベントをスローします

    B.
    複数インスタンス同期構成体がイベントを受け取ります

    C.
    受け取ったイベントの数を数えます

イベントを使用した実装

次の図に示すように、サブプロセスの最後にイベントをスローします。このサブプロセスは、複数インスタンス構成体内で複数回実行されます。メインプロセスは、このイベントをループの中で受け取ります。このループは、完了したサブプロセスの数を数えるためのものです。

フルサイズのグラフィックを表示
A.
メインプロセス内の複数独立インスタンス構成体

B.
複数インスタンス同期構成体がイベントを受け取ります

C.
受け取ったイベントの数を数えます

D.
サブプロセスの完了時にイベントをスローします