线程在后台执行时增加进度条

时间:2015-04-13 17:16:20

标签: vb.net multithreading progress-bar

作为更大程序的一部分,我已经实现了一个模块(基于教程),并在我调用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()并在线程执行时停止它(进度条),我怎样才能增加进度条?

0 个答案:

没有答案