2012-03-17 60 views
0

我想发送按钮上的电子邮件点击...但我想在后台发送电子邮件作为电子邮件的数量太多...所以我使用线程..如何使用线程

Public Sub sendEmail() 
    Dim _con As New SqlConnection(ConfigurationManager.ConnectionStrings("CitizenJDBConnectionString").ConnectionString) 
    Dim _sqlDataAdapter As New SqlDataAdapter("SELECT * FROM EmailSender", _con) 
    Dim _table As New System.Data.DataTable 

    Try 
     _con.Open() 
     _sqlDataAdapter.Fill(_table) 
     _con.Close() 

     For i As Integer = 0 To _table.Rows.Count 
      Dim AppPath As String = Request.PhysicalApplicationPath 
      Dim sr As New StreamReader(AppPath & "EmailTemplates/NewReport.txt") 
      Dim message As New MailMessage() 

      message.IsBodyHtml = True 
      message.From = New MailAddress("[email protected]") 
      message.To.Add(New MailAddress(_table.Rows(i).Item(1))) 
      'message.CC.Add(New MailAddress("[email protected]")) 
      message.Subject = "New User registration !" 
      message.Body = sr.ReadToEnd() 
      sr.Close() 
      message.Body = message.Body.Replace("<%ReporterName%>", _table.Rows(i).Item(3)) 
      message.Body = message.Body.Replace("<%ReportURL%>", _table.Rows(i).Item(2)) 

      Dim client As New SmtpClient() 
      client.Host = "smtp.asdf.com" 
      'smtp.gmail.com 
      client.Port = 25 
      client.UseDefaultCredentials = True 
      client.Credentials = New System.Net.NetworkCredential("[email protected]", "123456") 
      'smtp.EnableSsl = True 
      client.Send(message) 
      i += 1 
     Next 
    Catch ex As Exception 
     Response.Write(ex.Message) 
    End Try 
End Sub 

表结构

斯诺
电子邮件
URL
ReporterName

我使用下面的脚本在一个按钮单击事件

Dim thread As New System.Threading.Thread(AddressOf sendEmail) 
Thread.IsBackground = True 
Thread.Start() 
Thread.Priority = System.Threading.ThreadPriority.Normal 

我这样做是正确的?因为无论是我得到的错误,也没有电子邮件:(

回答

0

有比手动创建一个线程更好的方法。

我会首先保证实际的发送过程在单线程中工作,多线程应用程序更难调试

+0

上面的任何例子或文章? – user1150440 2012-03-17 09:19:57

+0

我将每个项目链接到其相应的MSDN页面。 'SendAsync()'可能是最容易实现的。 – 2012-03-17 09:22:03

+0

Hmmmmm .... lemme试试看...手指划过;) – user1150440 2012-03-17 09:23:04