2

.NETのSmtpClientクラスを使用するサンプルコードの大部分は、作成されたオブジェクトを破棄したり、usingブロックでラップしたりしないことに気づきました。(例:http: //msdn.microsoft.com/en-us/library/system.net.mail.smtpclient.aspx)SmtpClientの破棄はオプションですか、それともそれほど重要ではありませんか、それとも例が間違った道を進んでいますか?注:上記のMSDNの例では、MailMessageは破棄されますが、SmtpClientオブジェクトは破棄されません。

4

3 に答える 3

3

オンラインの多くの例で適切な廃棄コードが表示されない理由は、SmtpClientが.NET4までIDisposableを実装していなかったためです。したがって、例は以前のフレームワークに基づいているか、新しい機能に不慣れな人によって書かれている可能性があります。

于 2012-07-06T00:19:58.670 に答える
1

あなたはそれを処分しなければなりません。

SendAsync()を使用する例では、「using」キーワードを使用しないのはそのためです。SendAsync()はすぐに返され、現在使用中のオブジェクトを破棄できる可能性があります。ただし、すべての非同期メソッドが完了したら、クライアントを破棄することをお勧めします。

于 2012-06-18T12:25:26.623 に答える
0

Msdnの例では、そのようなことを省略しています。これは、正しい堅牢な本番アプリケーションを作成するのではなく、焦点を絞った小さな記事で概念を明確に示すことが重要だからです。

于 2012-06-18T12:24:03.007 に答える