tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
[ツリー表示へ]  [ワード検索]  [Home]

タイトル Re^6: マルチスレッドでスレッドを何度も実行する方法を教えてください
投稿日: 2007/07/18(Wed) 03:58
投稿者ポン太
たびたび申し訳ございません。

また一つ分からなくなってしまいました。お助け頂けないでしょうか。
WebClientのDownloadFileを実行中にプログレスバーで転送した量を
0%−100%で表示したいのですが、(ダウンロードの場合)
最初HttpWebRequestとHttpWebResponseでファイルのサイズを取得して、
Sub Downloading()というものがあり、その中で
DownloadFileを実行して出来たローカルファイルのファイルサイズを
Do Loopで1秒おきくらいで確認してプログレスバーを進めようと思っているのですが、
Downloading()をメインスレッドで実行することは出来ないでしょうか。

主な部分だけですが具体的には下記のようになっています。

Private Sub Button1_Click ・・・
t.Start()
End Sub

Sub Download()
Label1.Text="ダウンロード中"
Downloading()
FileNameの空のファイルを作成
Wc.DownloadFile(URL,FileName)
Label1.Text="ダウンロード完了"
End Sub


Sub Downloading()
Do Until Label1.Text = "ダウンロード完了"
ローカルのファイルのサイズを確認
プログレスバーを進める
Application.DoEvents()
System.Threading.Thread.Sleep(1000)
Loop
End Sub

このままですとDownload()内のDownloading()を呼び出したところで
ずっと停止してしまいます。
Downloading()をメインスレッドで実行できればと思うのですが、
もう一つスレッドを用意しないとならないでしょうか?

またはWc.DownloadFileメソッドでファイルを転送する際に
転送サイズをプログレスバーに反映できる良い方法がありましたら
アドバイスを頂けると幸いです。

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。