DOBON.NET DOBON.NETプログラミング掲示板過去ログ

ファイルのダウンロードのキャンセル

環境/言語:[VS2005]
分類:[.NET]

Dobon.netのサンプルを参考にしてインターネットであるサーバーからファイルを
ダウンロードするプログラムを、Read、Writeを使用して作成しました。
これにキャンセル処理をさせようと以下のようにし、キャンセルボタンを作成し、
そこにCancelFというキャンセルフラグを作成しましたが、そのボタンが効いて
くれません。どのような方法があるのでしょうか?

Dim total As Integer = 0
Dim readData(1023) As Byte
Dim readSize As Integer = 0
While True
readSize = strm.Read(readData, 0, readData.Length)
If readSize = 0 Then
Exit While
End If
fs.Write(readData, 0, readSize)

total = total + readSize / 1024
Lb_KByte.Text = CStr(tdl) + "KByte"
Lb_KByte.Update()

'ここでキャンセルか判断
If CancelDlF = True Then
Exit While
End If
End While

> While True
> readSize = strm.Read(readData, 0, readData.Length)

ここにApplication.DoEvent()を入れればいいのではないでしょうか。

> If readSize = 0 Then
> Exit While
■No21290に返信(通りすがりさんの記事)
>
>>While True
>>readSize = strm.Read(readData, 0, readData.Length)
>
> ここにApplication.DoEvent()を入れればいいのではないでしょうか。
>
>>If readSize = 0 Then
>>Exit While
>
ありがとうございます。
実験しましたら、ボタンのイベントを拾ってくれるようになりました。
ただ、1回でというわけにはいかず、2回はクリックしないと難しい状態です。
他のところにも挿入して実験してみます。
解決済み!
ファイルをダウンロードし保存する
http://dobon.net/vb/dotnet/internet/downloadfile.html

の「.NET Framework 2.0以降で、非同期的にファイルをダウンロードし保存する」も参考にしてみてください。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板