2011-05-30 3 views
13

Sto cercando di inviare la posta da localhost ..Differenza tra smtpClient.send() e smtpClient.SendAsync()?

e sul fare questo ho avuto metodi da diversi siti per l'invio di mails..but a fare questo io sono confuso tra smtpClient.send() e smtpClient.SendAsync() ..

I voglio sapere che come sono diversi gli uni dagli altri ???

Grazie in anticipo ..

risposta

12

smtpClient.send() avvierà l'invio sul thread principale/ui e bloccherebbe.
smtpClient.SendAsync() sceglierà un thread dal pool di thread .NET ed eseguirà il metodo su quel thread. Quindi l'interfaccia utente principale non verrà bloccata o bloccata.

Async Method Invocation - http://www.codeproject.com/KB/cs/AsyncMethodInvocation.aspx

+0

Ma mi può dire ciò che si dovrebbe essere utilizzato ?? – divya

+1

Se l'invio richiede allegati e richiede un po 'di tempo, andare con Async. Ma dovrai dedicare del tempo a leggere come funzionano le operazioni asincrone in .NET. MSDN ha già fornito un esempio per smtpClient.SendAsync, puoi andare avanti e usarlo. –

+4

@AseemGautam SendAsync() non utilizza Thread di ThreadPool ma utilizza semplicemente Asynchronous Operation Manager –

2

SendAsyc - invia il messaggio di posta elettronica specificato a un server SMTP per la consegna. Questo metodo non blocca il thread chiamante e consente al chiamante di passare un oggetto al metodo che viene richiamato al termine dell'operazione. Ulteriori dettagli: SmtpClient.SendAsync Method