Bonjour,

Je travail avec Visual studio 2003.
Dans mon projet, j'ai un thread qui s'occupe de recevoir de l'information sous forme de string. Je voudrais, à la réception d'un message, ouvrir une fenêtre qui affichera le message reçu.

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
                private void creation_Threadecoute()
		{
			this.monThread = new Thread(new ThreadStart(threadEcoute));
			this.monThread.Name="threadEcoute";
			this.monThread.Start();
		}
		private void threadEcoute()
		{
			continuer = true;
			string data;
			while(continuer)
			{
				/* réception du message dans data qui utilise un ReadLine 
				qui bloque le thread jusqu'à la réception d'un message */
				//création d'un Form
				Erreur err = new Erreur(data);
				err.Show();
			}
		}
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
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
public class Erreur : System.Windows.Forms.Form
	{
		private System.Windows.Forms.Label label1;
		private System.Windows.Forms.Button button1;		
		private System.ComponentModel.Container components = null;
		public Erreur(string msg)
		{			
			InitializeComponent();
			this.label1.Text = msg;			
		}		
		private void InitializeComponent()
		{
			this.label1 = new System.Windows.Forms.Label();
			this.button1 = new System.Windows.Forms.Button();
			this.SuspendLayout();
			// 
			// label1
			// 
			this.label1.Location = new System.Drawing.Point(24, 16);
			this.label1.Name = "label1";
			this.label1.Size = new System.Drawing.Size(240, 72);
			this.label1.TabIndex = 0;
			// 
			// button1
			// 
			this.button1.Location = new System.Drawing.Point(104, 104);
			this.button1.Name = "button1";
			this.button1.TabIndex = 1;
			this.button1.Text = "Ok";
			this.button1.Click += new System.EventHandler(this.button1_Click);
			// 
			// Erreur
			// 
			this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
			this.ClientSize = new System.Drawing.Size(292, 133);
			this.Controls.Add(this.button1);
			this.Controls.Add(this.label1);
			this.Name = "Erreur";
			this.Text = "Erreur";
			this.ResumeLayout(false);
		}
		private void button1_Click(object sender, System.EventArgs e)
		{
			this.Close();
		}
	}
Quand la fenêtre Erreur s'ouvre, elle se "bloque", elle plante jusqu'à ce que je ferme la fenêtre Principal qui à créé le thread (qui implique le kill du thread).

Est-ce que ce serait possible, depuis le thread, de créer la fenêtre Erreur comme je le désire et qu'elle s'exécute normalement? Est-ce que la création d'un nouvel objet Form n'est pas équivalent à la création d'un nouveau thread et donc que ce nouveau thread s'execute indépendemment du reste?

Merci d'avance
A toute

Philip.