作为更大程序的一部分,我已经实现了一个模块(基于教程),并在我调用SendEmail(Recipient, MessageBody)
Sub
Public Sub SendEmail(ByVal Recipient As String, ByVal MessageBody As String)
Dim SmtpServer As New SmtpClient
Dim Email As New MailMessage
With SmtpServer
.UseDefaultCredentials = False
.Credentials = New Net.NetworkCredential("abcd@abcd.com", "abcd")
.Port = 587
.EnableSsl = True
.Host = "smtp.gmail.com"
End With
With Email
.From = New MailAddress("xyz@xyz.com")
.To.Add(Recipient)
.Subject = "Arrival reminder"
.IsBodyHtml = False
.Body = MessageBody
End With
SmtpServer.Send(Email)
End Sub
这很好用,但发送邮件需要几秒钟。如果我在主线程上运行它,程序就会没有响应,所以我使用了不同的线程。
Private Sub btnSend_Click(sender As Object, e As EventArgs) Handles btnSend.Click
Dim MailX = Sub()
SendEmail(txtEmail.Text, txtMessage.Text)
End Sub
Dim MailThread As New Thread(MailX)
MailThread.IsBackground = True
MailThread.Start()
End Sub
我不是100%清楚使用Lambda表达式,但我从上传的内容中管理了上述内容。
我的问题是,一旦我调用MailThread.Start()
并在线程执行时停止它(进度条),我怎样才能增加进度条?