HttpWebResponse.BeginGetResponse() メソッドを使用して、サーバーにリクエストを送信します。「リクエスト完了」通知で、次のことを行います (エラー処理コードは含まれていません)。
HttpWebResponse response = (HttpWebResponse)myHttpWebRequest.EndGetResponse(result);
BinaryReader streamReader = new BinaryReader(response.GetResponseStream());
while ((readSize = streamReader.Read(buffer, 0, buffer.Length)) > 0)
{
...
}
私の質問は、response.GetResponseStream() から取得した Stream をメンバー変数としてどこかに保存し、次のようにリクエストをキャンセルしてもよいかどうかです。
m_requestState.httpRequest.Abort();
m_requestState.httpRequestStream.Close(); // If this is missing then
// streamReader.Read() locks for a long time when connection is lost.
このコードにより、streamReader.Read() が System.ObjectDisposedException をスローします。
ありがとうございました!
ミハイ