Fernando_Ramos Postado Janeiro 25, 2005 Denunciar Share Postado Janeiro 25, 2005 Amigos, tenho uma rotina que envia e-mails para os usuários cadastrados no meus sistema, o problema é que quando ele esta enviando os e-mails o sistema trava, e só é liberado ao término do envio.é possivel fazer com que esse travamento não aconteca? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 s3c Postado Janeiro 25, 2005 Denunciar Share Postado Janeiro 25, 2005 É sim, crie uma thread p/ envio de emails; com isto a thread de envio de emails rodará concorrentemente com a thread principal do seu programa. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Fernando_Ramos Postado Janeiro 25, 2005 Autor Denunciar Share Postado Janeiro 25, 2005 Poxa amigo, poderia me ensinar como fazer? sou novo em delphi, não possuo todos esses conhecimentos!! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 s3c Postado Janeiro 25, 2005 Denunciar Share Postado Janeiro 25, 2005 type TEnvio_Email = class(TThread) procedure Execute; override; constructor Create; end; var Enviar_Email :TEnvio_Email; constructor TEnvio_Email.Create; begin inherited Create(false); FreeOnTerminate := true; end; procedure TEnvio_Email.Execute; begin while not Self.Terminated do begin { envie um email de cada vez entre begin/end } end; end; // clique do botão de enviar emails ou algo parecido procedure TForm1.Botao_EnviarClick(Sender: TObject); begin Enviar_Email := TEnvio_Email.Create; end; Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Fernando_Ramos Postado Janeiro 25, 2005 Autor Denunciar Share Postado Janeiro 25, 2005 Amigo desculpe estar te enchendo a paciencia e a minha ignorancia, mas não entendi como fazer!!! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 s3c Postado Janeiro 25, 2005 Denunciar Share Postado Janeiro 25, 2005 Olá, bom vamos lá:1-O primeiro type seguido do var, declare-os antes da implementation.2-Os demais métodos declare-os após a implementation.3-O evento Botao_EnviarClick é o evento onde você instancia a thread.4-quando você executa TEnvio_Email.Create acontece o seguinte:a-É chamado o construtor do objeto.b-Como o comando inherited é enviado c/ o parâmetro false, automaticamente a thread entra em execução, processando assim o método Execute.c-No método Execute, você coloca seu código p/ enviar emails.d-Sua thread principal, ou, seu programa, rodará normalmente c/ prioridade maior do que a thread de envio de emails, porque ela é uma thread secundária. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Fernando_Ramos
Amigos,
tenho uma rotina que envia e-mails para os usuários cadastrados no meus sistema, o problema é que quando ele esta enviando os e-mails o sistema trava, e só é liberado ao término do envio.
é possivel fazer com que esse travamento não aconteca?
Link para o comentário
Compartilhar em outros sites
5 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.