私はMSDNのドキュメントでこれを読みました。これは、以下に貼り付けたコードでSendAsyncメソッドを呼び出した後も待つ必要があることを示唆しているようです。これは正しいですか? もしそうなら、SendAsyncではなくSendの同期メソッドを使用したほうがよいでしょう。私の目標は、ループ内の次の電子メールメッセージに移動し、前のメッセージが送信されるのを待たずに送信することでした。これにより、Sendメソッドを使用する場合に比べてemailMessagesコレクションをより迅速に処理できるようになります。しかし、それは真実ではないようです。
SendAsyncを呼び出した後、SendまたはSendAsyncを使用して別の電子メールメッセージを送信する前に、電子メールの送信が完了するのを待つ必要があります。
C#と.NetFramework4.5を使用しています。私のコードでは、SendAsyncメソッドを使用して、以下のコードのようにループ内から複数の電子メールを送信しようとしています。
List<EmailMessage> emailMessages = DAL.GetEmailsToBeSent();
SmtpClient client = new SmtpClient();
foreach(EmailMessage emailMessage in emailMessages)
{
//create a message object from emailMessage object and then send it asynchronously
client.SendAsync(message);
//client.Send(message);
}