1

私は 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

1バイトのチャンクサイズ 50Kバイトのチャンクサイズ

4

1 に答える 1