Jump to content

Recommended Posts

Posted (edited)

Boas!!! Gostava de saber se alguem sabe como correr uma função sem influenciar com a resposta do programa, ou seja, permitir trabalhar pelo programa enquanto ela está a correr. Basicamente tenho um programa para gerir os sócios de uma associação e quero que ele envie mails informativos aos sócios mas gostava que ele fizesse sem atrapalhar com o que eu estou a fazer. É possivel? A função seria esta:

titulo = "Validade quase no fim"
If BindingSourcesocio.Count > 0 Then
While i < BindingSourcesocio.Count
If txtemail.Text <> "" Then
If enviamail(txtemail.Text, titulo, txtnome.Text, txtdatains.Text, txtdatavalido.Text) <> 4 Then
aux2.Insert(txtnsocio.Text, titulo, Today, "Não", "", "Sim")
Else
aux2.Insert(txtnsocio.Text, titulo, Today, "Não", "", "Não")
End If
Else
aux1.descrevermotivocontacto(titulo & " Não tem email.", txtnsocio.Text)
End If
BindingSourcesocio.MoveNext()
i += 1
End While
End If
' fim
'enviar mail para os que estão com quotas em atraso
Me.SócioTableAdapter.acabarquotasmail(Me.SociosDataSet.Sócio, aux.dadata, Today.AddDays(1))
titulo = "Quotas em falta"
If BindingSourcesocio.Count > 0 Then
i = 0
While i < BindingSourcesocio.Count
If txtemail.Text <> "" Then
If enviamail(txtemail.Text, titulo, txtnome.Text, txtdatains.Text, txtdatavalido.Text) <> 4 Then
aux2.Insert(txtnsocio.Text, titulo, Today, "Não", "", "Sim")
Else
aux2.Insert(txtnsocio.Text, titulo, Today, "Não", "", "Não")
End If
Else
aux1.descrevermotivocontacto(titulo & " Não tem email.", txtnsocio.Text)
End If
BindingSourcesocio.MoveNext()
i += 1
End While
End If
'fim
'reenviar emails apos uma semana.
Me.ComunicaçãoTableAdapter.reenvia(Me.SociosDataSet.comunicação, Today.AddDays(-7))
If BindingSourcecumonicacao.Count > 0 Then
i = 0
While i < BindingSourcecumonicacao.Count
Me.SócioTableAdapter.numsocio(Me.SociosDataSet.Sócio, ctxtsocio.Text)
If enviamail(txtemail.Text, ctxtmail.Text, txtnome.Text, txtdatains.Text, txtdatavalido.Text) <> 4 Then
aux2.reenviado(Today, ctxtdata.Text, "Sim", ctxtid.Text)
Else
aux2.reenviado(Today, ctxtdata.Text, "Não", ctxtid.Text)
End If
BindingSourcecumonicacao.MoveNext()
i += 1
End While
End If
'fim
'enviar mails que tinha falahado na primeira tentativa.
Me.ComunicaçãoTableAdapter.Enviaemailfalhado(Me.SociosDataSet.comunicação)
If BindingSourcecumonicacao.Count > 0 Then
i = 0
While i < BindingSourcecumonicacao.Count
Me.SócioTableAdapter.numsocio(Me.SociosDataSet.Sócio, ctxtsocio.Text)
If enviamail(txtemail.Text, ctxtmail.Text, txtnome.Text, txtdatains.Text, txtdatavalido.Text) <> 4 Then
aux2.reenviado(Today, ctxttentativa.Text, "Sim", ctxtid.Text)
Else
aux2.reenviado(Today, ctxttentativa.Text, "Não", ctxtid.Text)
End If
BindingSourcecumonicacao.MoveNext()
i += 1
End While
End If
'fim
' cria relatório com os socios que não responderam aos mails
Me.ComunicaçãoTableAdapter.contactadiferente(Me.SociosDataSet.comunicação, Today.AddDays(-7))
If BindingSourcecumonicacao.Count > 0 Then
i = 0
While i < BindingSourcecumonicacao.Count
aux1.descrevermotivocontacto(titulo & " Já enviei dois mails.", ctxtsocio.Text)
aux2.respondeu(ctxtmail.Text & " Não respondeu a dois mails", ctxtid.Text)
BindingSourcecumonicacao.MoveNext()
i += 1
End While
End If
'fim
End If
Me.SócioTableAdapter.relatorioparacontactar(Me.SociosDataSet.Sócio)
If Me.BindingSourcesocio.Count > 0 Then
If MsgBox("Existem sócios para contactar sem ser por mail. Quer imprimir agora a lista?", MsgBoxStyle.YesNo, "Sócios") = MsgBoxResult.Yes Then
cantactardiferente.Show()
End If

O que faz ficar muito lento o envio dos mails prejudicando-me no resto do trabalho.

Edited by ribeiro55

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.