0

アプリケーションでエラーが発生した場合にメールを送信するために、以下の方法があります。[はい。メールでエラーを送信することは別の議論です]

public void EmailErrorDetails()
{
    string strBodyMessage = string.Empty;
    strBodyMessage = GetEmailBodyMessage();

    if (strBodyMessage != String.Empty)
    {
        MailMessage emailMessage = new MailMessage();
        emailMessage.From = new MailAddress(Constants.MailFrom);
        emailMessage.To.Add(Constants.MailTo);
        emailMessage.Subject = Constants.EmailSubject;
        emailMessage.IsBodyHtml = true;
        emailMessage.Body = string.Format(strBodyMessage);

        SmtpClient client = new SmtpClient();
        client.UseDefaultCredentials = false;
        client.DeliveryMethod = SmtpDeliveryMethod.Network;
        client.EnableSsl = true;
        client.Host = Constants.EmailHostAddress;
        client.Port = Convert.ToInt32(Constants.EmailPort);
        client.Credentials = new NetworkCredential(Constants.MailFrom, Constants.MailFromPassword);
        client.Send(emailMessage);


    }
}

このメソッドをバックグラウンドで非同期に実行し、実行を先に進めたいと考えています。

[client.Send] 自体が非同期呼び出しを使用していることを読みました。上記のメソッド呼び出しを非同期にする利点はありますか?もしそうなら、どうすればこれを達成できますか?

4

1 に答える 1

1

client.Send非同期呼び出しを使用することを読みました

clientが実際にはSmtpClientであると仮定すると、非同期呼び出しは使用さSend れません。SmtpClientには、電子メールを非同期で送信するための特定のメソッドがあり、SendAsyncと呼ばれます。バックグラウンドで電子メールを送信する場合は、 の代わりにこれを使用しますSend

于 2013-06-20T14:10:04.863 に答える