Top > プログラミング > .NET Tips> 時間のかかる処理の進行状況を表示する

時間のかかる処理の進行状況を表示する」への評価、コメント

評価

良い / 悪い = 80 / 5 (「良い」の割合 = 0.941 , 人気度 = 1.816

評価する

コメント一覧


通常のコメント
Hiro 2024/02/13 (Tue) 13:31:14
[.NET Framework 2.0以降で、BackgroundWorkerコンポーネントを使用する方法]
のサンプル内のコメントで、

'ProgressChangedで取得できる結果を設定する
は、
'RunWorkerCompletedで取得できる結果を設定する
の間違いではないでしょうか。

通常のコメント
boriki 2021/09/14 (Tue) 10:40:35
この例をそのままコピペして、ボタン1を押すと
BackgroundWorker1_DoWork が2回起動されました。
いろいろとWebで調べてみて、詳細は良く理解できていませんが、
下記の1行を追加したら1回の起動でおさまるようになりました。

//イベントハンドラをイベントに関連付ける
//フォームデザイナを使って関連付けを行った場合は、不要
BackgroundWorker1 = new BackgroundWorker(); // この行を入れると2回起動しなくなった
BackgroundWorker1.DoWork +=
new DoWorkEventHandler(BackgroundWorker1_DoWork);
BackgroundWorker1.ProgressChanged +=
new ProgressChangedEventHandler(BackgroundWorker1_ProgressChanged);
BackgroundWorker1.RunWorkerCompleted +=
new RunWorkerCompletedEventHandler(BackgroundWorker1_RunWorkerCompleted);

評価の理由
アサヒ 2020/12/9 (Wed) 20:10:28
評価:良い
凄く参考になりました。ありがとうございました。

評価の理由
VB2017使ってます 2019/03/3 (Sun) 18:06:56
評価:良い
とても分かりやすくて良かったです!ぼくは、VB2017を使ってプログレスバーを動かす、ということをしているのですが、すごく参考になりました!

評価の理由
素人 2016/03/8 (Tue) 20:13:26
評価:良い
すばらしい・・・

評価の理由
匿名 2014/04/15 (Tue) 13:41:38
評価:良い
非同期処理に困っていたため、大変助かりました。

通常のコメント
管理人 2013/12/11 (Wed) 04:17:12
> "BackgroundWorkerのCancellationPendingプロパティをTrueにする必要があります。"
> とありますが、BackgroundWorker.CancellationPendingはReadOnlyではないでしょうか?

「WorkerReportsProgress」の間違いでした。ご指摘いただき、ありがとうございました。次の機会に修正させていただきます。

通常のコメント
匿名 2013/12/9 (Mon) 16:50:05
"BackgroundWorkerのCancellationPendingプロパティをTrueにする必要があります。"

とありますが、BackgroundWorker.CancellationPendingはReadOnlyではないでしょうか?

通常のコメント
管理人 2013/07/6 (Sat) 19:11:33
> Labelの表示とProgressBarの進捗が同期できませんでした。
> (ProgressBarの方が一歩遅い) ProgressChanged内でUpdate()など試してみましたが、うまくいきませんでした。

これは、Windows VistaからのWindows Aero機能が原因のようです。

winforms - Disabling .NET progressbar animation when changing value?
http://stackoverflow.com/questions/5332616/disabling-net-progressbar-animation-when-changing-value

評価の理由
kankan 2013/05/12 (Sun) 03:57:49
評価:良い
いろいろ他の解説サイトを回ってみたけどスレッド概念がいまいち理解できなかったのですが、backgroundWorkerから順の説明でやっと理解出来ました。
ありがとうございました。

通常のコメント
haru 2013/05/1 (Wed) 02:20:38
参考になりました。
ただ、BackgroundWorkerを使った方法で、私の環境だと
Labelの表示とProgressBarの進捗が同期できませんでした。
(ProgressBarの方が一歩遅い) ProgressChanged内でUpdate()など試してみましたが、うまくいきませんでした。

評価の理由
良い 2012/05/31 (Thu) 13:51:14
評価:良い
良い
良い
良い
良い
良い
良い
良い
良い

評価の理由
PC-8801ユーザー 2012/04/17 (Tue) 13:02:24
評価:良い
すばらしい!
ほかのページを渡り歩いてきてここにたどり着きました。
その間に少しずつスキルを付けていたとは思いますが、
この説明をみて一気に理解度が深まったように思います。
今後とも、このようなページの作成を切望します。

通常のコメント
匿名 2011/03/11 (Fri) 09:43:38
処理中に×ボタンが押されたときの対処方もあれば、さらに良いと思います。
割と悩む人が多いのではないでしょうか。

通常のコメント
管理人 2011/02/16 (Wed) 03:43:39
> 'Me.Update()
> では?

修正しておきます。ご報告ありがとうございました。

通常のコメント
匿名 2011/02/15 (Tue) 17:17:00
VBの2個目の説明(コントロールを再描画する方法)で

'(フォーム全体を再描画するには、次のようにする)
'this.Update();

とありますが、

'Me.Update()

では?

評価の理由
匿名 2010/11/18 (Thu) 11:39:41
評価:良い
説明がうまい

評価の理由
ゆう 2010/09/26 (Sun) 10:43:01
評価:良い
サンプルコードに余計な処理がなく、知りたいことがズバリわかりました。

評価の理由
りん 2009/10/31 (Sat) 16:55:04
評価:良い
適切で良いサンプルだと思いました。

評価の理由
bin 2009/09/28 (Mon) 20:03:42
評価:良い
最初、使用法がわからなかったので、ちょっと戸惑い
ましたが、なんと使えるようになりました。

評価の理由
syu 2007/02/28 (Wed) 14:10:24
評価:良い
知りたい事がピンポイントで分かりました
ありがとうございます

評価の理由
加藤真実 2005/12/3 (Sat) 17:31:42
評価:良い
ループ処理中の他のタスクの対処方法が分からなかったので、この記事は役に立ちました。

評価の理由
tulip 2005/09/24 (Sat) 17:06:13
評価:良い
マルチスレッドの資料を探していましたが、参考になりました。

コメントの投稿

[説明]