#smtpclient
#smtpclient
Вопрос:
Я пытаюсь отправить почту с локального хостинга..
и при выполнении этого я получил методы с разных сайтов для отправки писем .. но при выполнении этого я запутался между smtpClient.send()
и smtpClient.SendAsync()
..
Я хочу знать, чем они отличаются друг от друга???
Заранее спасибо..
Ответ №1:
smtpClient.send()
инициирует отправку в основном потоке / ui и блокирует. smtpClient.SendAsync()
выберет поток из пула потоков .NET и выполнит метод в этом потоке. Таким образом, ваш основной пользовательский интерфейс не будет зависать или блокироваться.
Вызов асинхронного метода — http://www.codeproject.com/KB/cs/AsyncMethodInvocation.aspx
Комментарии:
1. Но можете ли вы сказать мне, какой из них следует использовать??
2. Если отправка включает вложения и занимает некоторое время, используйте асинхронность. Но вам придется потратить некоторое время на чтение того, как работают асинхронные операции в .NET. MSDN уже приводила пример для SmtpClient. SendAsync, вы можете продолжить и использовать его.
3. @AseemGautam SendAsync() не использует поток ThreadPool, он просто использует диспетчер асинхронных операций
4. Это довольно хорошо объясняет функцию SendAsync (): learn.microsoft.com/en-us/dotnet/api /…
Ответ №2:
SendAsyc — Отправляет указанное сообщение электронной почты на SMTP-сервер для доставки. Этот метод не блокирует вызывающий поток и позволяет вызывающей стороне передать объект методу, который вызывается по завершении операции. Подробнее : SmtpClient.Метод SendAsync