none
Repite DoWork RRS feed

  • Pregunta

  • Buen dia señores....

    Tengo el siguiente inconveniente con mi codigo que esta escrito en VB.NET  2015 y es con respecto al envio de correos. El problema en si, es que me esta enviando el correo DOS veces... lo he hecho utilizando hilos y delegados... les coloco el codigo para que me puedan dar una idea de por donde esta el problema...

    Private Sub BtnEnviar_Click(sender As Object, e As EventArgs) Handles BtnEnviar.Click
    
            If (BackgroundWorker1.IsBusy <> True) Then
                ' Iniciamos la operación asíncrona.
                BackgroundWorker1.RunWorkerAsync()
            Else
                BackgroundWorker1.CancelAsync()
    
            End If
    
        End Sub


     Private Sub BackgroundWorker1_DoWork(sender As Object, e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork
            Me.Invoke(ChangePictureVisibility, True)
            Me.Invoke(ObtieneDatos)
    
            e.Cancel = EnviarEMail(GSmtp, GCorreo, GClave, GPuerto)
    
        End Sub
    Private Sub BackgroundWorker1_RunWorkerCompleted(sender As Object, e As System.ComponentModel.RunWorkerCompletedEventArgs) Handles BackgroundWorker1.RunWorkerCompleted
            Me.Invoke(ChangePictureVisibility, False)
            BackgroundWorker1.CancelAsync()
        End Sub


    Public Function EnviarEMail(ByVal LSmtp As String, LCorreo As String, LClave As String, LPuerto As String) As Boolean
            Try
                message.From = New MailAddress(Me.TxtBCorreo.Text)
                message.To.Add("wichortiz@gmail.com")
                message.Body = "Necesitamos Numero de Serial para la Aplicacion DAPABIENO"
                message.Subject = "Solicitud de Serial"
    
                message.Priority = MailPriority.Normal
                smtp.EnableSsl = True
    
                smtp.Port = CInt(LPuerto)
                smtp.Host = LSmtp
    
                smtp.Credentials = New Net.NetworkCredential(LCorreo, LClave)
    
                Try
                    smtp.Send(message)
    
                    clsConfigMessageBox.ShowWinMessage("El correo fue enviado con Exito", "Correo Pedir Serial", MessageBoxIcon.Error,
                                                       MessageBoxButtons.OK)
                    Return True
    
                Catch ex As Exception
    
                    clsConfigMessageBox.ShowWinMessage(ex.Message, "Correo Pedir Serial", MessageBoxIcon.Error,
                                                       MessageBoxButtons.OK)
                    Return False
                End Try
    
            Catch ex As Exception
    
                clsConfigMessageBox.ShowWinMessage(ex.Message, "Correo Pedir Serial", MessageBoxIcon.Error,
                                                   MessageBoxButtons.OK)
                Return False
            End Try
    
        End Function

    Ya lo he debugiado varias veces y no encuentro el porque se repite el DoWork...

    Agradezco mucho su atencion y espero algun comentario,

    Luis Eduardo

    • Cambiado Enrique M. Montejo viernes, 26 de mayo de 2017 7:33 Pregunta relacionada con aplicación de Windows Forms.
    lunes, 22 de mayo de 2017 18:16