2011-05-30 5 views
13

私は..私はsmtpClient.send()smtpClient.SendAsync()の間で混乱していますsmtpClient.send()とsmtpClient.SendAsync()の違いは?

を私は...ローカルホストからメールを送信するために

をしようとしていますし、これを行うに私はこれを行うにmails..but送信に異なるサイトからメソッドを持っています彼らがお互いにどのように違うのかを知りたいですか?事前に

おかげ..

答えて

12

smtpClient.send()は、メイン/ uiスレッドで送信を開始し、ブロックされます。
smtpClient.SendAsync()は、.NETスレッドプールからスレッドを選択し、そのスレッドでメソッドを実行します。したがって、メインのUIはハングしたりブロックされたりしません。

非同期メソッド呼び出し - http://www.codeproject.com/KB/cs/AsyncMethodInvocation.aspx

+0

しかし、あなたは私のものを使用すべきことを伝えることができます? – divya

+1

送信に添付ファイルが含まれていて時間がかかる場合は、Asyncを使用してください。しかし、非同期操作が.NETでどのように機能するかを読むためには時間を費やす必要があります。 MSDNはすでにsmtpClient.SendAsyncの例を示しています。先に進んで使用することができます。 –

+4

@AseemGautam SendAsync()はThreadPoolのスレッドを使用せず、単にAsynchronous Operation Manager –

2

SendAsyc - 配信のためのSMTPサーバに指定した電子メールメッセージを送信します。このメソッドは、呼び出しスレッドをブロックせず、呼び出し側が、操作が完了したときに呼び出されるメソッドにオブジェクトを渡すことを許可します。詳細:SmtpClient.SendAsync Method

関連する問題