2009-08-02 9 views
10

私は非常に驚いていますHttpWebRequestはクローズメソッドを持っていませんが、その対応部分HttpWebResponseがあります。それは私をちょっと混乱させ、不便にさせます。 :-)HttpWebRequestにはクローズメソッドはありませんか?

ですから、私たちは応答があったときにCloseを呼び出すだけで、リクエストを処理する必要はありません。私の懸念事項は、リークとリソース使用効率の向上です。私はVSTS2008 + C#+ .Net 3.5を使用しています。

+1

(私は重複を削除し、余分なコンテンツにマージしました) –

+0

あなたはもう一度**(今削除されました)それを聞いたのですか?それをしないでください... –

答えて

29

はい、応答オブジェクトで呼び出すだけで済みます。

リクエストは絶対に何もしません。それはソケットや何かを開くことはありません。単にデータを保持しているだけなので、それを無視して不要にしてもかまいません(純粋な管理リソースで、ガベージコレクタが処理します)。実際のものは、GetResponseメソッドの1つが呼び出された後に発生します。

+0

こんにちは、任意のMSのドキュメントやHttpWebRequest/Responseの内部動作を説明する別の "公式"場所ですか? – tamberg

+0

@tambergあなたはソースコードを入手して自分で読むことができます:http://referencesource.microsoft.com/netframework.aspx –

+0

実際には動作していないようです。少なくともSSL接続の場合、サーバーに近いものを送信していないようです。 – Tuntable

1

HttpWebResponseで参照しているcloseメソッドは、Web Serverに完了した応答を送信するために使用します。 HttpWebRequestオブジェクトでは、処理を開始するとすべてのコンテンツが利用できるため、サーバーを閉じて通信する必要はありません。

4

類推:

私はあなたに話をしたいと私はすでに私は単に(要求)あなたの名前を呼ぶあなたに話したいと確信している場合。しかし、いつ、どのように、そして私に答えてくれるかを決めるのはあなた次第です(レスポンス)。だから、あなたは私よりもコミュニケーションを支配するでしょう、私はそれを始めました。