Разлика между smtpClient.send() и smtpClient.SendAsync()?

Опитвам се да изпратя поща от localhost..

и докато правя това, имам методи от различни сайтове за изпращане на имейли..но докато правя това съм объркан между smtpClient.send() и smtpClient.SendAsync()..

Искам да знам как се различават един от друг???

Благодаря предварително..


person divya    schedule 30.05.2011    source източник


Отговори (2)


smtpClient.send() ще инициира изпращането в нишката main/ui и ще блокира.
smtpClient.SendAsync() ще избере нишка от .NET Thread Pool и ще изпълни метода на тази нишка. Така че основният ви потребителски интерфейс няма да виси или блокира.

Извикване на асинхронен метод - http://www.codeproject.com/KB/cs/AsyncMethodInvocation.aspx

person Aseem Gautam    schedule 30.05.2011
comment
Но можете ли да ми кажете кой трябва да се използва?? - person divya; 30.05.2011
comment
Ако изпращането включва прикачени файлове и отнема малко време, изберете Async. Но ще трябва да прекарате известно време в четене как работят асинхронните операции в .NET. MSDN вече даде пример за smtpClient.SendAsync, можете да продължите и да го използвате. - person Aseem Gautam; 30.05.2011
comment
@AseemGautam SendAsync() не използва ThreadPool's Thread, а просто използва Asynchronous Operation Manager - person Rushi Soni; 30.10.2013
comment
Това обяснява SendAsync() доста добре: docs.microsoft.com/en-us/dotnet/api/ - person Sam; 16.09.2020

SendAsyc - Изпраща определеното имейл съобщение до SMTP сървър за доставка. Този метод не блокира извикващата нишка и позволява на повикващия да предаде обект на метода, който се извиква, когато операцията завърши. Повече подробности: Метод SmtpClient.SendAsync

person Anuraj    schedule 30.05.2011