Les threads 2005 sont extrement minimisé

Fildomen Messages postés 805 Date d'inscription jeudi 22 mai 2003 Statut Membre Dernière intervention 30 octobre 2010 - 16 nov. 2004 à 10:58
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 - 10 nov. 2006 à 22:16
slt
j'ai toujours des problèmes avec la version 2005, et + précisement avec les threads, voilà mon problème:

j'ai une form qui appel un sub, et ce sub commence un thread, et le thread modifie un label(NbConnexion) dans la form, et la je recois cette erreur:

Illegal cross-thread operation: Control 'NbConnexion' accessed from a thread other than the thread it was created on.

pouvez vous m'expliquez pourquoi???Est-ce-que toujours on ne doit utiliser que les trucs crées dans le même thread??? ca n'était pas dans le 2003!!! Ces langages vont finir par être que des minables devant le c++ unmanaged et l'asm, et croyez moi, jamais mikrozoft ne fera un logiciel avec un truc managed,pimporte, veuillez m'aider svp, les threads sont l'axe des prog de serveur.

merci

http://www.devportail.tk

13 réponses

TheSaib Messages postés 2367 Date d'inscription mardi 17 avril 2001 Statut Membre Dernière intervention 26 décembre 2007 23
16 nov. 2004 à 13:24
Cela n'a rien a voir avec la version du framework et c'est tout a fait logique.

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/htm br l/cpcondevelopingmultithreadedwindowsformscontrol.asp

http://support.microsoft.com/default.aspx?scid=KB EN-US 318607

::|The S@ib|::
MVP C#.NET
0
TheSaib Messages postés 2367 Date d'inscription mardi 17 avril 2001 Statut Membre Dernière intervention 26 décembre 2007 23
16 nov. 2004 à 13:25
Et pour l'asm je te mets au défi de développer des applications avec interface graphique...

Stupide remarque

::|The S@ib|::
MVP C#.NET
0
Fildomen Messages postés 805 Date d'inscription jeudi 22 mai 2003 Statut Membre Dernière intervention 30 octobre 2010
16 nov. 2004 à 16:04
merci pour l'aide, mais alors, je peux pas modifier un label dans une autre form que le thread(et pourtant ca marchais en 2003)?? alors comment ferai-jet pour afficher les statistiques du serveur(nombre de connectés....)???

pour l'asm, je n'ai pas dis qu'on programmerait des jeux ou des trucs graphics avec, mais seulement la partie CALCULES où il est très optimisé.

n'oublie pas de me répondre à ma question pricipale svp.

et merci

http://www.devportail.tk
0
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
16 nov. 2004 à 16:40
cette exception n'est levée qu'en lancant l'appli en mode debug

un peu de lecture sur le sujet : http://www.dotnet247.com/247reference/msgs/54/272634.aspx

Cocoricoooooooo !!!!
coq
MVP Visual C#
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Fildomen Messages postés 805 Date d'inscription jeudi 22 mai 2003 Statut Membre Dernière intervention 30 octobre 2010
16 nov. 2004 à 21:48
merci coq,tu vois thesaib, c'est que dans la version 2 du framework(d'après mon mauvais anglais),je n'ai pas trop compris le truc,mais ce que j'ai bien appri, c'est que c impossible de le faire avec ce framework, alors je suis obligé de laisser tomber les threads :-)

merci encore m.coq et m.thesaib, et j'aime bien si vous me trouveriez une solution.

merci

http://www.devportail.tk
0
Fildomen Messages postés 805 Date d'inscription jeudi 22 mai 2003 Statut Membre Dernière intervention 30 octobre 2010
16 nov. 2004 à 21:53
ya une chose bizarre. c'est que l'erreur ne se déclenche qu'au 3ème utilisation du label
:

fm.Message("Recherche du serveur...", fm.FmConnexion);// Sans erreur
...
fm.Message("Connexion au serveur...", fm.FmConnexion);// Sans erreur
...
Con.Connect(Ip, 2000);
if (!Con.Connected)
{
fm.Message("Connexion échouée...", fm.FmConnexion);// Sans erreur
return;
}
fm.Message("Reception du port...", fm.FmConnexion);// Sans erreur
.....
fm.Message("Connexion au serveur...", fm.FmConnexion);//ERREUR


http://www.devportail.tk
0
Fildomen Messages postés 805 Date d'inscription jeudi 22 mai 2003 Statut Membre Dernière intervention 30 octobre 2010
16 nov. 2004 à 22:35
oooooooffffff, j'ai tout remis sans les thread, mais j'ai un autre problème minable, c'est de passer une form au autre:
je fais comme ca:
Mainform:

public FmMessage FmMessage = new FmMessage();
private void MainForm_Load(object sender, EventArgs e)
{
FmMessage.AvoirMainForm(this);
}

FmMessage:

public MainForm MF;
public void AvoirMainForm(MainForm fm)
{
MF = fm;

}

on m'affiche cette erreur en vert:

this.Clients[0] Keyword 'this' is not valid in a static property, static method, or static field initializer

http://www.devportail.tk
0
Fildomen Messages postés 805 Date d'inscription jeudi 22 mai 2003 Statut Membre Dernière intervention 30 octobre 2010
16 nov. 2004 à 22:41
excusez moi, j'ai trouvé la soluce du dernier problème déposé
http://www.devportail.tk
0
TheSaib Messages postés 2367 Date d'inscription mardi 17 avril 2001 Statut Membre Dernière intervention 26 décembre 2007 23
16 nov. 2004 à 23:49
Tu peux faire un lock sur la modification du label , peut etre que ...

::|The S@ib|::
MVP C#.NET
0
cs_olecossois Messages postés 18 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 12 mars 2008
8 nov. 2006 à 12:05
Ca vient bien du framework 2.0.

Il y a une sécurité supplementaire empéchant le cross threading

Il est possible d'enlever cette sécurité en faisant :

Control.CheckForIllegalCrossThreadCalls=false

dans le load de la winform

Par contre je ne sais plus si c'est du VB ou du C#

Cordialement

Olivier
0
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
10 nov. 2006 à 19:39
Salut,

Ce qui a pour effet de masquer le problème et non le résoudre...
Le mieux est donc naturellement de passer par ce qui est décrit par exemple dans ce tuto : OPÉRATIONS CROSS THREADS - UTILISATION DES DELEGATIONS SYNCHRONES / ASYNCHRONES

/*
coq
MVP Visual C#
CoqBlog
*/
0
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
10 nov. 2006 à 22:12
Tiens, de vieux postes qui resurgissent...

<hr size="2" />-Blog-
0
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
10 nov. 2006 à 22:16
Moui lol, c'est en perpétuel mouvement dans le coin :p

/*
coq
MVP Visual C#
CoqBlog
*/
0
Rejoignez-nous