- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:C# backgroundworker progressbar について)
C# backgroundworker progressbar 進捗状況の取得方法
このQ&Aのポイント
- C#でテキストファイルの読み込みをバックグラウンドで行う際の進捗状況の取得方法について教えてください。
- 進捗状況を取得する方法として、ファイルのバイト数を取得し、一行ずつ読み込んで進捗を計算する方法があります。
- 他にも進捗状況を取得する方法があるか教えていただけないでしょうか。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
基本的には「総数」を「現状」で割る、ということになります。 質問が抽象的なので回答も抽象的になってしまいますが、「総数」を求めるのもいろいろあります。 最初に総数を求めるのではなく、処理進行中に総数を求めていく場合もあります。 一部の情報から総数を予測して開始し、「現状」の進行と同一スレッドで進行の度に「総数」を再計算/予測計算する方法や、「現状」の進行とは別のスレッドで「総数」を再計算/予測計算して割り出すというような場合もあります。 「現状」の求め方もいろいろあります。 個数なのか、サイズなのか、時間なのかなど、進行を示す単位が何なのかによって、「現状」と「総数」の適した求め方も異なります。 現状も、実質値ではなく予測値を使う場合もあります。 帯域幅が安定しない通信回線を用いてサーバでどんどん増え続けるファイルを増える速度よりやや速いと思われる速度でダウンロードしつつ削除している時の時間進捗表示などは、いろいろな予測値を使います。 何の進捗を表示したくて、それにどの程度の精度が必要で、ユーザーのストレスを少なくするにはどういう指標を使うべきなのかによって、進捗に使う指標は異なります。
お礼
>最初に総数を求めるのではなく、処理進行中に総数を求めていく場合もあります。 総数を求めるだけでも時間がかかる場合もあるので、 そういう時はどうすんだろうと思っていたんですが、進行中に、 別スレッドで総数を見に行くという方法は考えていませんでした。 予測値というのも新しい発想でした。 ありがとうございました。