シナリオ:私DataGrid
のアプリケーションには、onclikcing
各行の値がtexboxes
以下のように設定されています。値を更新します。[保存] をクリックすると、プロセスが完了するまでに時間がかかります。
そのため、プロセスを実行するためのバックグラウンドワーカーを作成しましたasynchronously
。各行がクリックされると、インスタンスbackgroundworker
が作成され、プロセスが完了します。その更新中に、ユーザーはグリッドの 2 番目の行を選択し、その値を更新します。したがって、これにより別のインスタンスが作成され、プロセスがバックグラウンドで実行されます。
ユーザーがグリッドの最初の行を選択すると、両方の更新プロセスが実行されているときに、「プロセスはまだ実行中です」というメッセージが表示されます。
//コード:
' イベントの OnClick
var bw = new BackgroundWorker();
bw.WorkerReportsProgress = true;
bw.DoWork += delegate {
SaveDetails();
};
bw.RunWorkerCompleted += delegate {
MessageBox.Show("Completed");
};
bw.RunWorkerAsync();
'保存方法
public void SaveDetails()
{
for (int i = 0; i < 10;i++ )
{
System.Threading.Thread.Sleep(5000);
MessageBox.Show("Hi");
}
}
以前に作成した backgroundworker インスタンスにアクセスして、プロセスのステータスを確認し、メッセージを表示するにはどうすればよいですか?
注:同時に実行されているプロセスが多数ある可能性があるため、どのプロセスにもアクセスできるはずです。
これは可能ですか?