ここで多くの質問があったことは知っていますが、私はたくさんの質問を経験しましたが、ほとんど運がありませんでした. 私はイベントとバックグラウンド ワーカーが初めてで、これを実装する最善の方法がわかりません。
私は C# で基本的な Windows フォームを持っています。プログレスバーが含まれています。ファイルをダウンロードするクラスを呼び出しています。そのダウンロードに基づいて進行状況バーを更新したい。すべてが同じクラスにある場合は正常に動作しますが、この状況では動作しません。これを処理する最善の方法は何ですか?どうすればよいですか? 現在、私はこれをやっています:
WebClient downloader = new WebClient();
downloader.DownloadFileCompleted += new AsyncCompletedEventHandler(Completed);
downloader.DownloadProgressChanged += new DownloadProgressChangedEventHandler(ProgressChanged);
そして、進行状況が変更された場合、私はこれを行います:
public void ProgressChanged(object sender, DownloadProgressChangedEventArgs e)
{
pbDownload.Value = e.ProgressPercentage;
}
しかし、プログレスバーを除くすべてを別のクラスに入れると、すべてがめちゃくちゃになります。アイデア?ありがとう!