時間の掛かる処理中にプログレスバー(Marquee)を動作させる方法
- 題名: 時間の掛かる処理中にプログレスバー(Marquee)を動作させる方法
- 著者: tack
- 日時: 2012/06/20 0:20:05
- ID: 30605
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[1]: 時間の掛かる処理中にプログレスバー(Marquee)を動作させる方法
- 著者: 管理人
- 日時: 2012/06/20 4:22:58
- ID: 30606
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[2]: 時間の掛かる処理中にプログレスバー(Marquee)を動作させる方法
- 著者: tack
- 日時: 2012/06/26 9:08:13
- ID: 30637
- この記事の返信元:
- この記事への返信:
- ツリーを表示
分類:[.NET]
はじめまして。
処理中にプログレスバー(Marquee)を動作させる方法についてご指導願います。
内容を変更したくないメソッド(=どのくらいの時間で処理が完了するか不明)を実行中に、フォーム上でプログレスバーを動作させたいと考えています。
(当該処理が終わった後にはさらに別の処理が続きます)
普通に考えれば、Application.DoEventsを実行することで、プログレスバー上でメーターが移動するのですが、実際に処理を行うメソッドを改変したくないがため、どのようにプログレスバーを再表示すべきか困っています。
いろいろ検証した結果、別スレッドから定期的にApplication.DoEventsを実行することなども試してみましたが、解決には至りませんでした。
実際にやりたいことのサンプルプログラムは下記の通りです。
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
' プログレスバーをマーキーに設定
Me.ProgressBar1.Style = ProgressBarStyle.Marquee
' どれくらいで終わるかわからない処理
' この処理を実行中にプログレスバーを動かしておきたい
' このメソッドの内容は変えたくない
TestMethod1()
' 完了したらプログレスバーを非表示に設定
Me.ProgressBar1.Visible = False
' 後続の処理
TestMethod2()
End Sub
みなさんの知恵をお貸しください。
以上、よろしくお願いいたします。