このコードを使用して HttpWebResponse ストリームを読み取ります
Stream stm = httpResp.GetResponseStream();
Stream fs = new FileStream(filename, FileMode.Append, FileAccess.Write);
byte[] buff = new byte[1024 * 16];
AsyncCallback callback = null;
callback = ar =>
{
int bytesRead = stm.EndRead(ar);
fs.Write(buff, 0, bytesRead);
if(bytesRead == 0)
return;
stm.BeginRead(buff, 0, buff.Length, callback, null);
};
stm.BeginRead(buff, 0, buff.Length, callback, null);
ダウンロード速度を制限したい。Thread.Sleep() を callback 内に配置すると、スレッドがブロックされたままになりますが、多くのストリームではうまくスケーリングされません。ダウンロード制限とスレッド節約を達成する他の方法はありますか?