私は Web ダウンローダーを書いていますが、奇妙な問題に遭遇しました。サンプルコード:
int chunk;
var request = WebRequest.Create(uri) as HttpWebRequest;
using (WebResponse response = request.GetResponse())
{
using (var responseStream = response.GetResponseStream())
{
using (Stream file = File.Create(filePath))
{
long byteReaded = 0;
long contentLength = response.ContentLength;
while (byteReaded < contentLength)
{
long bytesCountToRead = contentLength - byteReaded > chunk ? chunk : contentLength - byteReaded;
byte[] buffer = new byte[bytesCountToRead];
responseStream.Read(buffer, 0, buffer.Length);
file.Write(buffer, 0, buffer.Length);
byteReaded += bytesCountToRead;
}
}
}
}
問題: 'chunk' 変数 == 1 または 2 バイトの場合は問題ありません。しかし、このサイズが大きくなると、画像が乱れます。サイクルの最後の行に大きなサイズを設定chunk
して挿入すると、画像は正常なままになるため、ダウンロード速度(応答読み取り速度)のあるものであることがわかりました。誰かが私を助けてくれたらいいのに。Thread.Sleep(time)
while