1

powershell と Windows フォームを使用して、入力しようとしている datagridview を持つアプリケーションがあります。例のために、私のコードが次のようになっているとしましょう:

    $button1_Click={
    For ($i = 0; $i -lt 100000; $i++)
    {
        $datagridview1.Rows.Add($i.ToString())
    }

for 命令の実行にかかる時間 (私のコンピューターでのこの特定の例では約 13 秒) の間、フォームは明らかにロックされます。

私は基本的に、フォームをロックせずにデータグリッドビューが更新され続けるように、これを行う方法を見つけようとしています。フォームが使用可能である限り、実行に時間がかかってもかまいません。

これが私が試したことです:

  • Start-Job ですが、Start-Job はデータグリッドビューと直接やり取りできないため、結果を取得してデータグリッドビューに追加するには、ジョブが完了するまで待つ必要があります。これを行うには、Wait-Job の実行中にフォームをロックする Wait-Job が必要になります。

  • Register-ObjectEvent ですが、Windows フォームを使用している場合、これは期待どおりに機能しません。

  • バックグラウンドワーカーの使用を検討しましたが、Powershell では不可能であることに気付きました

4

1 に答える 1