IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

Outlook.MailItems : c'est lent!?


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juin 2006
    Messages : 8
    Par défaut Outlook.MailItems : c'est lent!?
    Bonjour à tous,

    Je rencontre un petit désagrément dans un code récupéré ici même... Ce code permet d'instancier un objet Outlook, de parcourrir une boite mail et de faire des traitements sur les objets de type "Outlook.MailItem".

    Jusqu'ici tout va bien, ma classe permet de récupérer les emails d'une boite dans un DataSet, rien de bien compliqué. En revanche... lorsque la boite traitée contient une quantité importante d'email (> 150) il faut un certains temps pour que mon "For Each" parcours tout les items...

    Vous comprendrez que parcourrir une boite mail qui contient beaucoup d'email cela devient trés trés trés ennuyeux...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
    // j'ai précédement récupéré le boite mail sélectionnée
    Outlook.Items oItems = _oInbox.Items;
     
    // Récupère le nombre total d'objets dans la boite;
    Int32 i32TotalItems = oItems.Count;
     
    // Parcours des items
                    for (Int32 i32Idx = 1; i32Idx <= i32TotalItems; i32Idx++)
                    {
                        // Traitement du type : remplir un DataSet avec sujet / adresse / taille...
                    }
    Pourriez vous me dire s'il existe un autre moyen plus "efficace"? ai je loupé un truc?... parceque pour parcourir 150 emails... 3 ou 4 secondes c'est à mon goût un peu long, surtout qu'il n'y a aucun traitement! juste la lecture des Outlook.MailItem...

    Merci à tous!

  2. #2
    Membre éprouvé
    Avatar de _skip
    Homme Profil pro
    Développeur d'applications
    Inscrit en
    Novembre 2005
    Messages
    2 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur d'applications
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 898
    Par défaut
    C'est quoi exactement qui prend tu temps, le parcours des mailItems ou alors l'accès à certaines de ses propriétés?

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juin 2006
    Messages : 8
    Par défaut
    Salut,

    Ce qui prend du temps est UNIQUEMENT la boucle, l'accés au propriété est rapide pas de soucis de ce coté là... Je viens encore de faire un test en parcourant 1000 emails.... et bien 8 secondes c'est long!... Need Help!

    Voici encore une illustration du code vraiment pas sorcier... un classique je dirais! puisqu'il s'agit simplement d'un parcours de collection... Cela vient il d'Outlook?..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    // Je parcours tous les Item 1 par 1 ici
    for (Int32 i32Idx = 1; i32Idx <= i32TotalItems; i32Idx++)
    {
       // Je récupère ici l'item parcourru
       objItem = oItems[i32Idx];
     
       // 1 petit test pour être certains qu'il s'agit bien d'un Outlook.MailItem
       if (objItem is Outlook.MailItem)
       {
           //... Lecture des propriétés ici
        }
    }

  4. #4
    Membre éprouvé
    Avatar de debug
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    1 034
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 034
    Par défaut
    Ah mon avis tu ne pourras aller plus vite.

    C'est l'accès aux objets Outlook qui est lent à la base....pour avoir coder des trucs sur des boites contenants 4go de données, je peux te confirmer que c'est lent...

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juin 2006
    Messages : 8
    Par défaut
    Je m'en doutais un peu à vrai dire... Malheureusement je n'ai aucune autre solution... Il va falloir que je joue de ruse pour "masquer" cet effect génant dans mon application... MultiThreading et compagnie... Bref ça ne m'arrange pas.

    A moins que quelqu'un d'entre vous ai une autre alternative?... une autre solution?..

    Merci à vous pour votre attention.

  6. #6
    Membre éprouvé
    Avatar de debug
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    1 034
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 034
    Par défaut
    Citation Envoyé par kehops Voir le message
    A moins que quelqu'un d'entre vous ai une autre alternative?... une autre solution?..
    Fournir l'oreiller ou la cafetière en même que le setup de ton appli

Discussions similaires

  1. Winmerge est lent
    Par nolan76 dans le forum Autres
    Réponses: 1
    Dernier message: 02/06/2006, 12h23
  2. Si le forum est lent chez vous : soluce
    Par Marc Lussac dans le forum Mode d'emploi & aide aux nouveaux
    Réponses: 4
    Dernier message: 22/04/2006, 12h01
  3. Pourquoi cette requête est lente ?
    Par zenzo dans le forum Langage SQL
    Réponses: 7
    Dernier message: 06/01/2006, 16h15
  4. Ma machine est lente
    Par Le Furet dans le forum Windows XP
    Réponses: 3
    Dernier message: 20/11/2005, 20h04
  5. [FLASH MX] C'est lent ?
    Par lepierre dans le forum Flash
    Réponses: 14
    Dernier message: 01/02/2005, 11h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo