Exe d'une commande

dodo1309 Messages postés 218 Date d'inscription mercredi 17 mai 2006 Statut Membre Dernière intervention 30 mai 2011 - 11 avril 2009 à 23:09
dodo1309 Messages postés 218 Date d'inscription mercredi 17 mai 2006 Statut Membre Dernière intervention 30 mai 2011 - 12 avril 2009 à 11:50
Hello ,

Je cherche comment je pourrai lancer une commande sans bloqué l'exécution de mon programme .

La commande est :

sendMail(sujet,body, add_in,email);

Vu que cette commande prend un certain temps je voudrai la lancer sans bloquer le déroulement du programme.

Merci d'avance ;)

2 réponses

Utilisateur anonyme
12 avril 2009 à 09:59
Je pense qu'il faut utiliser un thread.
En principe c'est l'utilisation de base d'un thread, exécuter une tâche parallèle sans bloquer le programme.
Sur internet il y a pas mal de docs là-dessus.

++ et bonne prog
0
dodo1309 Messages postés 218 Date d'inscription mercredi 17 mai 2006 Statut Membre Dernière intervention 30 mai 2011
12 avril 2009 à 11:50
Merci , J'ai fait ceci mais mon programme est toujours bloqué  :

public class MailThread extends Thread{
   
      public void run(String subject, String body, String sender, String recipients)throws Exception {
                 
           String mailhost = "smtp.gmail.com";
            Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
            Properties props = new Properties();
            props.setProperty("mail.transport.protocol", "smtp");
            props.setProperty("mail.host", mailhost);
            props.put("mail.smtp.auth", "true");
            props.put("mail.smtp.port", "465");
            props.put("mail.smtp.socketFactory.port", "465");
            props.put("mail.smtp.socketFactory.class","javax.net.ssl.SSLSocketFactory");
            props.put("mail.smtp.socketFactory.fallback", "false");
            props.setProperty("mail.smtp.quitwait", "false");
     
            Session session = Session.getDefaultInstance(props,
                    new javax.mail.Authenticator()
            {
                protected PasswordAuthentication getPasswordAuthentication()
                { return new PasswordAuthentication("info.mediatheque@gmail.com","groupe02");    }
            });       
     
            MimeMessage message = new MimeMessage(session);
            message.setSender(new InternetAddress(sender));
            message.setSubject(subject);
            message.setContent(body, "text/plain");
            if (recipients.indexOf(',') > 0)
                        message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(recipients));
            else
                        message.setRecipient(Message.RecipientType.TO, new InternetAddress(recipients));
     
           
            Transport.send(message);
      }   
}

Appel :

try {
              mth.run(sujet,body, add_in,email);

                                } catch (Exception e) {
                                   
                                }
0
Rejoignez-nous