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); } }Voilà je suis un peu débutant dans les threads en C# donc toute aide est la bienvenue.
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); } }
Merci d'avance.
Partager