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 では不可能であることに気付きました