サーバーからファイルをダウンロードする際に使用する方法があります。MY メソッドは正常に動作しますが、実行の各インスタンスで計算されたプロセス実行のパーセンテージを返したいと考えています。以下のように、backgroundworker を使用して、プログレスバーに backgroundworker_changed メソッドを使用しようとしました。
bw.WorkerReportsProgress = true;
bw.WorkerSupportsCancellation = true;
bw.DoWork += new DoWorkEventHandler(bw_DoWork);
bw.ProgressChanged += new ProgressChangedEventHandler(bw_ProgressChanged);
bw.RunWorkerCompleted += new RunWorkerCompletedEventHandler(bw_RunWorkerCompleted);
ボタンのクリックでワーカーを開始します。
private void btnStart_Click(object sender, EventArgs e)
{
if (bw.IsBusy != true)
{
bw.RunWorkerAsync();
}
}
worker_changed メソッド
private void bw_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
progressBar.Value = e.ProcessPercentage;
}
私の問題は、DoWork() メソッドから進捗状況を報告する必要があることを理解しています。どうすればそれを達成できますか?私はこのようなことを考えました。
private void bw_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
progressBar.Value = Convert.ToInt32( e.UserState );
}
DoWork から進行状況が返されなかったため、まだ起動しません。どんな助けでも大歓迎です。