次の方法で共有

Powershell のworflowにおける変数の排他の必要性

Anonymous
2019-03-24T02:01:51+00:00

よろしくお願いします。

powershellのworkflowで以下のように変数を共有できると思いますが、変数は排他してから更新する必要があるのでしょうか。

-pararell により平行して実行されますが、タイミングによって同時に x を更新し不整合が発生するようはことはありますか。

以下の例で最終的に xは10になるずですが、場合によっては9になる可能性はありますか。

workflow hoge{

 $x=1

 for-each -paralell ($i in 1..10)

{

 #処理をここに記載

 $workflow:x+=1

}

家庭向け Windows | 以前の Windows バージョン | アプリ

ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。

0 件のコメント コメントはありません

2 件の回答

並べ替え方法: 最も役に立つ
  1. Anonymous
    2019-03-26T06:37:47+00:00

    © ウィンドウズスクリプトプログラマ - Windows Script Programmer 2019


    TechNet フォーラム - Windows Powershell

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  2. Anonymous
    2019-03-24T05:28:27+00:00

    MSDNフォーラムの方がより適切な回答が得られるでしょう。

    MSDNフォーラム

    https://social.msdn.microsoft.com/Forums/ja-JP/home

    [ForEach -Parallel]はブロック内で定義されているアクティビティが非同期である場合 (メッセージング アクティビティ、InvokeMethod、AsyncCodeActivityから派生するアクティビティなど) に別々のスレッドで処理する処理です。逆に言うと非同期処理でなければ同期的にシリアルに実行されます。

    そのため、シリアル実行されているときには、xはカウントアップされループ毎に異なる値になりますが、非同期にパラレル実行された途端に排他処理をしてカウントアップしないとループ毎に異なる値になることは保障されなくなります。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません