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 :

C# Problème avec le Multithreading


Sujet :

C#

  1. #1
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Juin 2007
    Messages
    204
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2007
    Messages : 204
    Points : 89
    Points
    89
    Par défaut C# Problème avec le Multithreading
    Bonjour à tous,

    J'essaye de mettre en place une petite appli multithreadée, mais je n'arrive pas à faire s'exécuter les différents threads en même temps (ils s'exécutent les uns après les autres).

    Voici un bout de mon code, lors de l'évènement button_Send_Click, je lance un nouveau thread paramétré avec une commande (String) - une commande est envoyée au serveur, et la réponse peut varier en temps, de 0.1sec à 10sec voir +.
    J'aimerais donc que si j'envoie une commande avec réponse de + de 10sec et juste après une commande avec réponse de 0.1sec, je reçoive la 2nd réponse avant la 1ère (ce qui n'est pas le cas car la 2nd commande part après la 1ère).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    private void button_Send_Click(object sender, EventArgs e)
    {
            Thread threadSendMessage;
            String command = textBox_Message.Text;
     
            lock (lockThreadSendMessage)
            {
                    Object paramThread = null;
                    paramThread = command;
     
                    threadSendMessage = new Thread(new ParameterizedThreadStart(Thread_SendMessage));
                    // J'ai essayé avec la fonction IsBackground true/false, sa ne change rien
                    threadSendMessage.Start(paramThread);
            }
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    private void Thread_SendMessage(Object stringCommand)
    {
            try
            {
                    String command = stringCommand as String;
                    String resultCommand = null;
     
                    resultCommand = SendMessage(command);
                    if (resultCommand == null)
                        AppendResponseLine("No response");
                    else
                    {
                            resultCommand = resultCommand.Replace("\n", "\r\n");
     
                            AppendResponseLine(resultCommand);
                    }
            }
            catch (Exception e)
            {
                    AppendResponseLine("Exception  : " + e.Message);
                    AppendResponseLine("StackTrace : " + e.StackTrace); 
            }
    }
    Voilà je suis un peu débutant dans les threads en C# donc toute aide est la bienvenue.
    Merci d'avance.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    332
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2002
    Messages : 332
    Points : 502
    Points
    502
    Par défaut
    Si tu travailles en .net 4.5 je te conseille d'utiliser les méthodes asynchrones et le parallelisme.

Discussions similaires

  1. Encore un problème avec le multithread
    Par Mario Rousson dans le forum VB.NET
    Réponses: 4
    Dernier message: 17/11/2014, 23h12
  2. Problème avec du multithread
    Par benymypony dans le forum Débuter
    Réponses: 5
    Dernier message: 22/10/2011, 09h08
  3. Réponses: 8
    Dernier message: 04/03/2009, 14h39
  4. Multithreading : problème avec Abort()
    Par mrrenard dans le forum C#
    Réponses: 7
    Dernier message: 29/10/2007, 17h02
  5. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10

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