2011-05-30 30 views
13

Estoy tratando de enviar el correo de localhost ..Diferencia entre smtpClient.send() y smtpClient.SendAsync()?

y en hacer esto que he conseguido métodos de los diferentes sitios de enviar mails..but sobre cómo hacer esto estoy confundido entre smtpClient.send() y smtpClient.SendAsync() ..

I ¿Quieres saber cómo son diferentes el uno del otro?

Gracias de antemano ..

Respuesta

12

smtpClient.send() iniciará el envío en el hilo principal/ui y se bloquearía.
smtpClient.SendAsync() seleccionará un hilo del .NET Thread Pool y ejecutará el método en ese hilo. Por lo tanto, su IU principal no se bloqueará ni bloqueará.

asíncrono Método de Invocación - http://www.codeproject.com/KB/cs/AsyncMethodInvocation.aspx

+0

Pero me puede decir lo que uno debe usarse ?? – divya

+1

Si el envío implica archivos adjuntos y toma un poco de tiempo, vaya con Async. Pero tendrá que pasar un tiempo leyendo cómo funcionan las operaciones asincrónicas en .NET. MSDN ya dio un ejemplo para smtpClient.SendAsync, puede continuar y usarlo. –

+4

@AseemGautam SendAsync() no utiliza el subproceso ThreadPool, solo usa el gestor de operación asíncrono –

2

SendAsyc - Envía el mensaje de correo electrónico especificada a un servidor SMTP para la entrega. Este método no bloquea el hilo de llamada y permite que el que llama pase un objeto al método que se invoca cuando se completa la operación. Más detalles: SmtpClient.SendAsync Method