Problème de thread

Résolu
oualla_mohamed Messages postés 8 Date d'inscription jeudi 21 octobre 2004 Statut Membre Dernière intervention 16 décembre 2008 - 22 déc. 2004 à 17:10
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 - 13 nov. 2006 à 18:30
A partir d'un WinForm je lance un thread qui accède a un contôle de la WinForm.
Le souci c'est qu'en je lance l'execution du programme à partir de Visual Studio il génére une exception :
le thread ne peut pas acceder à un contrôle declaré dans un autre thread de la WinForm.
Ca marche lorsque j'execute directement l'exe via l'explorateur.

Si quelqu'un sait comment resoudre ce souci je l'en remercie par avance.

9 réponses

cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
24 déc. 2004 à 11:28
tu ne dois pas acceder directement a un element de l'interface graphique depuis un autre thread

exemple de code pour recuperer la valeur :
private void pbConnect_Click(object sender, EventArgs e)
        {
            AcceptConnexionDelegate acd = new AcceptConnexionDelegate(AcceptConnexion);
            acd.BeginInvoke(null, null);
        }

        private int GetPortNumberValue()
        {
            return Convert.ToInt32(txtPortNumber.Text);
        }

        private delegate int GetPortNumberValueDelegate();

        private delegate void AcceptConnexionDelegate();
        private void AcceptConnexion()
        {
            Socket CurrentClient = null;
            Socket ServerSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
            int port = (int)txtPortNumber.Invoke(new GetPortNumberValueDelegate(GetPortNumberValue));
            ServerSocket.Bind(new IPEndPoint(ipAddress, port));
            ServerSocket.Listen(10);
        }


Cocoricoooooooo !!!!
coq
MVP Visual C#
3