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 :

[C# Generics] Différence de comportement entre Queue<T> et List<T>


Sujet :

Windows Forms

  1. #1
    Nouveau membre du Club
    Inscrit en
    Février 2007
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 49
    Points : 35
    Points
    35
    Par défaut [C# Generics] Différence de comportement entre Queue<T> et List<T>
    Bonjour à tous,
    Je développe une application qui pour l'instant scrute 2 dossiers A et B.
    Task est une classe de l'application.

    Lorsqu'un fichier est détecté dans A alors je créé un objet Task qui est ajouté dans une Liste<Task>.
    Lorsqu'un fichier est détecté dans le dossier B alors je crée un objet Task qui est ajouté dans un Queue<Task>.

    J'arrive sans problème à maintenir à jour mon DataGridView affichant les informations contenues dans la List par contre, impossible de faire la même chose avec la Queue.

    Quelqu'un aurait-il une idée d'où cela pourrait-il bien venir? Sachant que le code est exactement le même la seule différence étant qu'une fois c'est avec une List<Task> et l'autre fois avec une Queue<Task>.

  2. #2
    Membre éprouvé Avatar de neptune
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 835
    Points : 958
    Points
    958
    Par défaut
    public class List<T> : IList<T>, ICollection<T>,
    IEnumerable<T>, IList, ICollection, IEnumerable

    public class Queue<T> : IEnumerable<T>, ICollection,
    IEnumerable

    Le generic Queue n'implémente pas les bonnes interfaces pour fonctionner avec le DataGridView.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Février 2007
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 49
    Points : 35
    Points
    35
    Par défaut
    et là c'est le drame...

    Voyez-vous un moyen de contourner ce problème?

    Ma queue est tout simplement une queue d'impression, chaque fois que je mets des objets "Task" à l'intérieur ils sont traités par mon imprimante par ordre d'arrivée... et donc je souhaiterai dans mon onglet "Impressions en attente" pouvoir visualiser les objets "Task" en attente d'impression...

  4. #4
    Membre éprouvé Avatar de neptune
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 835
    Points : 958
    Points
    958
    Par défaut
    Une liste et une queue ne sont pas le même genre de structure de données!

    Une queue est de type FIFO, une liste tu accèdes librement aux éléments.

    Je suppose que le DataGrid n'accepte pas de Queue car le DataGrid te permet d'accéder à un élément en particulier directement, ce que la Queue ne permet pas.

  5. #5
    Membre expérimenté Avatar de Mose
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 143
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 143
    Points : 1 379
    Points
    1 379
    Par défaut
    Passe par une liste temporaire.
    Ca tombe bien, y'a un constructeur super pratique pour ça.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    List<truc> templist = new List<truc>(maqueue); // on ne rigole pas ;p
    Pour la lecture et l'édition c'est cool, mais pour l'insertion/suppression ça l'est moins.

  6. #6
    Nouveau membre du Club
    Inscrit en
    Février 2007
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 49
    Points : 35
    Points
    35
    Par défaut
    Problème résolu merci Mose ça marche parfaitement!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 24/11/2008, 20h39
  2. Différence de comportement entre SE (win/Unix)
    Par freestyler dans le forum Shell et commandes GNU
    Réponses: 8
    Dernier message: 14/09/2008, 12h17
  3. différence de comportements entre JVM
    Par Nicaisse dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 30/08/2007, 11h41
  4. Réponses: 2
    Dernier message: 20/06/2007, 10h27
  5. [JavaScript] Différence de comportement entre IE et FF
    Par YAMKI dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 23/02/2007, 14h33

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