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 :

Conception logiciel en C# et multithreading jusqu'où?


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 Conception logiciel en C# et multithreading jusqu'où?
    Bonjour,

    Tout d'abord, je ne sais pas du tout si ce message est posté dans la bonne section ou si Conception ou mon projet auraient été plus appropriés, n'hésitez pas à me le faire savoir.

    Je vous explique mon problème, je n'ai pas encore commencé à écrire la moindre ligne de code C#, j'en suis encore à m'imaginer comment mon programme va fonctionner et je bloque pas mal sur cette phase de conception.

    L'objectif de ce logiciel est de :

    - Se lancer (premier objectif)
    - Récupérer des informations paramétrables sur la localisation de dossiers A, B et C
    - Scruter les dossiers A, B, C sur une machine en réseau toutes les x secondes
    - Lorsqu'un (ou plusieurs) nouveau dossier est repéré dans le dossier A il faut alors que mon logiciel effectue une action sur les fichiers de ce(s) nouveau dossier qui peut prendre plusieurs minutes, sachant que ces actions doivent être faites dans l'ordre chronologique de création des dossiers et déplacer au fur et à mesure les fichiers de ces dossiers en local dès qu'un traitement est fini sur un fichier.
    - En même temps il est nécessaire que mon logiciel continue de scruter les dossiers B et C afin de maintenir la liste des fichiers qu'ils contiennent et que l'utilisateur puisse les utiliser, les supprimer etc... si l'utilisateur décide d'utiliser un des fichier du dossier B alors celui-ci est mis en "file d'attente" jusqu'à ce que toutes les actions sur le dossier A soient finies.

    Voilà, je me pose cette question.

    Comment puis-je gérer les actions de plusieurs minutes sur le dossier A, tout en laissant la main à l'utilisateur sur l'interface... pour qu'il puisse lancer des actions sur les dossiers B et C...

    Bref, mes connaissance en matière de threads sont encore quelque peu limitées mais je parcours les FAQs et cours tant que je peux pour m'instruire.

  2. #2
    Rédacteur
    Avatar de dev01
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 451
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 451
    Points : 6 017
    Points
    6 017
    Par défaut
    Salut .

    effectivement les threads vont faire ce que tu veux à savoir effectuer ton action de plusieur minutes sur un dossier ( 1 thread), continuer à vérifier les autres dossier (1 thread) et gérer l'interface graphique (1 thread).

    Tu auras donc au minimun 2 threads et au maximun N+2 thread ou N représente le nombre d'action en cours sur les fichiers de tes dossiers.

  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
    Merci de ta réponse, cela m'a aidé et conforté.
    Après réflexion, je pense fonctionner comme cela:

    - Un thread qui scrutera les dossiers A, B et C. Dès qu'un nouveau dossier sera détecté dans les dossiers A, B ou C alors je placerai un objet dans une file d'attente et j'activerai le deuxième thread

    - Ce deuxième thread aura pour fonction de récupérer les objets dans la file d'attente un par un car le traitement pour chaque objet sera long (plusieurs minutes). Dès que le premier thread n'aura plus rien mis dans la file d'attente je pourrai suspendre l'activité du deuxième thread.

    - Enfin un troisième thread toujours actif me permettra de gérer l'interface graphique, sachant que certaines actions devront être interdites lorsque le deuxième thread sera actif.


    Lorsque je détecte plusieurs dossiers dans le dossier A par exemple, je veux les traiter un par un par ordre chronologique et pas en parallèle, c'est pourquoi je n'aurai pas N + 2 threads mais plutôt simplement 3 threads.

    Est-ce que mon raisonnement vous semble cohérent et réalisable?

  4. #4
    Rédacteur
    Avatar de dev01
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 451
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 451
    Points : 6 017
    Points
    6 017
    Par défaut
    Ouais c'est bien penser et apparement ça fait ce que tu veux

Discussions similaires

  1. Concept logiciels de modélisation
    Par Vivian Pennel dans le forum Algorithmes et structures de données
    Réponses: 0
    Dernier message: 13/11/2009, 15h31
  2. [Projet en cours] Informations conception logiciels
    Par trusty82 dans le forum Projets
    Réponses: 15
    Dernier message: 01/06/2009, 17h26
  3. Question conception logiciel ?
    Par Stejar dans le forum Développement 2D, 3D et Jeux
    Réponses: 3
    Dernier message: 29/10/2008, 20h01
  4. Conception logicielle
    Par Strange-Days dans le forum Scheme
    Réponses: 29
    Dernier message: 26/05/2008, 15h10
  5. [POO] Conseils pour conception logicielle en php
    Par mithrendil dans le forum Langage
    Réponses: 14
    Dernier message: 07/02/2008, 17h19

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