Salut à tous,

j'ai un petit problème avec les threads, je connais pas encore très bien leurs fonctionnement.

Alors, au chargement de ma form, j'éxecute un thread pour charger des images en arrière plan. Et une fois le thread terminé, je fais un callback. Pour continuer à utiliser ma form. Ca c'est la théorie.

Maintenant, dans la pratique il me met une erreur "Les contrôles créés sur un thread ne peuvent pas être parents d'un contrôle d'un autre thread.".

Est ce qqun aurait déjà rencontré ce genre de problème ? mon code en dessous.

Si jamais, il plante sur "Controls.Add(img_tasse);" et aussi c'est un programme pour Windows CE donc ne vous posez pas trop de question au sujet de ma manière de faire.

Merci

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
 
public main()
{
  _threadLoadPictures = new Thread(new ThreadStart(threadLoadPictures));
  _threadLoadPictures.Name = "name_threadLoadPictures";
  _threadLoadPictures.Start();
  .....
}
...
 
private void threadLoadPictures()
{
	// Dessine la Tasse vide
	path = "./ffsdisk/img_tasse_vide.gif";
	if (File.Exists(path))
	{
		img_tasse = new PictureBox();
		img = new Bitmap(path);
 
		img_tasse.Image = img;
		img_tasse.Location = new System.Drawing.Point(40, 34);
		img_tasse.Name = "Tasse";
		img_tasse.Size = new System.Drawing.Size(240, 206);
 
		img_tasse.MouseDown += new MouseEventHandler(img_tasse_MouseDown);
		img_tasse.MouseMove += new MouseEventHandler(img_tasse_MouseMove);
		img_tasse.MouseUp += new MouseEventHandler(img_tasse_MouseUp);
 
		img_tasse.Visible = false;
 
		Controls.Add(img_tasse);
	}
 
	returnLoadPictures();
}