La mia applicazione gestisce le vendite di un negozio, quando termino le operazioni di vendita di determinati clienti invia una mail alla loro casella ringraziandoli dell'acquisto fatto.
Per inviare mail uso la segente routine :
(I msgbox servono in fase di progettazione solo per verificare il funzionamento)
codice:
Sub InviaMailFidelizzazione()
Try
MsgBox("Inizio delle operazioni del thread")
Dim message As New Net.Mail.MailMessage(My.Settings.FidelizzazioneQMAILMITTENTE, Form18.Label21.Text, My.Settings.FidelizzazioneQOGGETTO, My.Settings.FidelizzazioneQTESTOMAIL & ElencoPrFidel)
MsgBox(1)
Dim emailClient As New Net.Mail.SmtpClient(My.Settings.FidelizzazioneQSMTP)
MsgBox(2)
emailClient.Send(message)
MsgBox(3)
ElencoPrFidel = ""
MsgBox("Operazioni del thread eseguite con successo")
Catch ex As InvalidOperationException
'MessageBox.Show("Non è stato specificato il nome Host del server")
Catch ex As SmtpFailedRecipientException
'MessageBox.Show("Tentativo di invio al server locale, ma non è presente una mailbox")
Catch ex As SmtpException
'MessageBox.Show("Utente non valido/Host non trovato/Altro errore in fase di invio")
Catch ex As Exception
'MessageBox.Show(ex.ToString)
'LocalError("FormFx1Load")
End Try
End Sub
Per avviare questa routine però vorrei utilizzare un thread in modo da poter essere subito pronto per la vendita successiva senza dover aspettare l'invio della mail.
Il codice per avviare il Thread è il seguente:
codice:
MsgBox("Avvio del thread")
Dim T As New Threading.Thread(AddressOf InviaMailFidelizzazione)
T.Start()
MsgBox("Thread avviato correttamente")
Il problema è che non vengono eseguite tutte le operazioni indicate nella routine.
In termini di msgbox vengono visualizzati solo i seguenti:
1.MsgBox("Avvio del thread")
2.MsgBox("Thread avviato correttamente")
3.MsgBox("Inizio delle operazioni del thread")
Secondo voi dove sbaglio?
Grazie per l'attenzione