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

C# Discussion :

Mon Thread est interrompu, besoin d'expert en thread


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2006
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 113
    Par défaut Mon Thread est interrompu, besoin d'expert en thread
    Bonjour,

    Je développe actuellement la fonctionnalité envoie de fichier de mon logiciel de discussion instantané. J'ai réussi à faire l'envoie d'un fichier tout bête mais je me suis rendu compte que lorsque j'essayais d'envoyer un deuxième fichier en même temps que le premier, le transfert des paquets du premier fichier s'arrêtait net, pour laisser place, au transfert des paquets du second!!!
    Donc le transfert du premier fichier s'est interrompu!
    ERf!!!!!

    Pour envoyer un fichier, j'utilise un thread paramétré qui exécute une méthode bouclant sur tous les paquets de byte du fichier à envoyer:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
             private void sendFile_Click(object sender, EventArgs e)
            {
                Thread sendFile= new Thread(new  ParameterizedThreadStart(threadSendFile));
                DialogResult dr = myAvatarBox.ShowDialog();
                toto.Start(dr);  
            }
    Donc voilà, à la sélection du fichier, y a un nouveau thread qui est crée et pourtant, bien qu'à chaque fois ce soit une nouvelle instance, le thread est interrompu!!!!

    Du côté de la réception, c'est basique

    Un thread qui boucle à l'infini pour écouter la socket, à l'intérieur duquel se trouve un thread pour traiter les paquets reçus. En gros:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
       while (true)
       {
          Thread trait=new Thread(new ParameterizedThreadStart(traitement))
          trait.Start();
     
      }
    Voilà, j'ai vraiment besoin de vos lumières..


    Je ne sais vraiment pas pourquoi, les threads crées ne s'executent pas tous en même temps, c'est étrange???

    Merci de m'aider

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2008
    Messages
    242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2008
    Messages : 242
    Par défaut
    Ca à peut-être un rapport en synchrone et asynchrone non?

  3. #3
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Par défaut
    salut

    si tu veux envoyer plusieurs fichiers, il faut utiliser plusieurs thread, mais aussi plusieurs sockets (peut-etre l'as tu fait, mais je n'ai pas lu que tu le faisais)

    Plusieurs sockets => plusieurs fichiers

    The Monz, Toulouse

  4. #4
    Membre confirmé
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2006
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 113
    Par défaut
    désolé mais je ne crois pas qu'il faille forcément plusieurs sockets pour envoyer plusieurs fichiers en même temps, je m'explique!

    A l'heure actuelle, j'utilise plusieurs threads qui réussissent à envoyer un fichier et du texte en même temps! En effet mon application possède un tread d'envoi de fichier et un d'envoi de message et ca fonctionne.

    Par contre quand j'essaye d'envoyer un second fichier avant la fin du précédent, j'ai l'impression que l'autre est remplacé!

    En fait la méthode qui lance mon thread récupère tout d'abord la valeur de "l'openFileDialog"(myAvatarBox.showDialog()) puis l'envoie à la méthode et démarre!! Mais j'ai testé en utilisant 2 méthodes distinctes pour envoyer 2 fichiers en même temps, et CA MARCHE!!


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
      private void sendFile_Click(object sender, EventArgs e)
            {
                Thread sendFile= new Thread(new  ParameterizedThreadStart(threadSendFile));
                DialogResult dr = myAvatarBox.ShowDialog();
                toto.Start(dr);  
            }
     
    private void pictureBox1_Click_1(object sender, EventArgs e)
            {
                threadFile = new Thread(new ParameterizedThreadStart(threadSendFil));
                DialogResult dr = myAvatarBox.ShowDialog();
                threadFile.Start(dr);
            }
    Voilà ces 2 méthodes executent la même méthode threadé!! et là ca marche, c'est vraiment étrange, je suis obliger de créer un autre bouton d'envoie de fichier alors que j'utilise exactement la même méthode threadé.

    C'est quoi ce délire?


    édit: j'ai trouvé la cause de mon soucis,c'est l'openFileDialog ERF!!!
    en fait en utilisant la même méthode de sélection de fichier, quand je veux choisir un deuxième fichier à envoyer il écrase la référence de l'autre!!!!

    Ca marche si je met l'appel de l'openFileDialog dans 2 méthode différentes (donc 2 boutons), peut être car lévènement est différent, c'est bizarre!!

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

Discussions similaires

  1. [Pattern][Regex] vérifier que mon email est valide
    Par anitshka dans le forum Collection et Stream
    Réponses: 7
    Dernier message: 23/05/2011, 13h03
  2. mon poste est invisible depuis le serveur
    Par StyleXP dans le forum Administration
    Réponses: 13
    Dernier message: 08/01/2006, 22h32
  3. [Sécurité] Savoir si mon visiteur est un humain
    Par toure32 dans le forum Langage
    Réponses: 8
    Dernier message: 08/01/2006, 15h13
  4. Mon appli Access/Vba: besoin de recul
    Par kilimanjaro dans le forum Access
    Réponses: 4
    Dernier message: 02/11/2005, 11h06
  5. [Access] Mon application est détruite !!!
    Par mathias dans le forum Access
    Réponses: 4
    Dernier message: 26/06/2003, 14h14

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