IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Thread - classes - Variables


Sujet :

C#

  1. #1
    Membre habitué
    Homme Profil pro
    Inscrit en
    Septembre 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8
    Par défaut Thread - classes - Variables
    Bonjour


    Comment modifier une variable qui se trouve dans une autre classe et autre thread??

    Exemple

    Class1: (je défini ma variable)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Public static bool Connected=false;
    Class2 MYCL=new class2
    private TEST: (je lance le module "essai" en thread)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Tread TH = new thread(essai));
    th.start();
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    private traitement de controle()
    (A ce moment et, tout le long, "Connected" est toujours à false)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if (Connected==true)
    {blablalba}
    Class2:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    public void essai
    class1.Connected=true;
    La classe 2, s'effectue dans un second thread et, je dois récupérer "connected" dans le traitement du thread principal dans la classe 1 .

    D'avance merci

  2. #2
    Membre Expert
    Avatar de azstar
    Homme Profil pro
    Architecte Technique BizTalk/.NET
    Inscrit en
    Juillet 2008
    Messages
    1 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Technique BizTalk/.NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 198
    Par défaut
    pour faire la manipulation interTHRead des variables il faut uitlise de delege des fonctions.

  3. #3
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    Citation Envoyé par azstar Voir le message
    pour faire la manipulation interTHRead des variables il faut uitlise de delege des fonctions.
    ??????

  4. #4
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    Citation Envoyé par electro74 Voir le message
    Bonjour

    La classe 2, s'effectue dans un second thread et, je dois récupérer "connected" dans le traitement du thread principal dans la classe 1 .

    D'avance merci
    Utilise l'instruction lock sur tes accesseurs pour sécuriser les accès interthreads.

    Et utilise les balise CODE quand tu postes du code sinon c'est illisible.

  5. #5
    Membre Expert
    Avatar de azstar
    Homme Profil pro
    Architecte Technique BizTalk/.NET
    Inscrit en
    Juillet 2008
    Messages
    1 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Technique BizTalk/.NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 198
    Par défaut
    désolé pour la mauvaise formulation.

    lien

  6. #6
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    Citation Envoyé par azstar Voir le message
    désolé pour la mauvaise formulation.

    lien
    Ce n'est pas une question de formulation. Tu fais un mélange entre deux problématiques radicalement différentes : L'accès aux controles d'une form par un thread autre que celui qui a instancié les contrôle, ce qui est le sujet du lien que tu postes et qui n'a strictement rien à voir avec la problèmatique exposée ici, où je ne vois aucune nécessité de compliquer le code en ajoutant des delegate ou je ne sais quoi, alors qu' assurer le vérouillage des accesseurs via l'instruction "lock" est largement suffisant.

  7. #7
    Membre Expert
    Avatar de azstar
    Homme Profil pro
    Architecte Technique BizTalk/.NET
    Inscrit en
    Juillet 2008
    Messages
    1 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Technique BizTalk/.NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 198
    Par défaut
    dans son solution il amene a modifie une variable qui se trouve dans une form (Thread 1) dans un autre thread(thread2)

    Comment modifier une variable qui se trouve dans une autre classe et autre thread??[/B]
    alors il est amene a passe l'instance de son from 1 dans une fonction de la thread 2.

  8. #8
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    Citation Envoyé par azstar Voir le message
    dans son solution il amene a modifie une variable qui se trouve dans une form (Thread 1) dans un autre thread(thread2)
    - Il n'a jamais été question de Form ici..

    - quand bien même, la règle dit que le thread de création doit être utilisé pour modifier les control . or ici il est question de membre, il n'a pas parlé de controle.

    - donc on ne voit pas du tout pourquoi il devrait passer par les delegate et les méthodes Invoke : totalement inutile.

    C'est mieux de lire les questions avant d'essayer de répondre !

  9. #9
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 197
    Par défaut
    une classe n'a rien à voir avec un thread
    un thread peut accéder à tout et ne peut modifier que des choses non graphiques ou des controls qu'il a créé

    donc modifier une variable d'une classe à une autre qu'on soit sur un ou plusieurs threads ca ne change rien c'est un problème de portée

    après je ne comprends pas la question, donc je ne peux pas dire que c'est un problème de verrouillage
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  10. #10
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    Citation Envoyé par Pol63 Voir le message
    après je ne comprends pas la question, donc je ne peux pas dire que c'est un problème de verrouillage
    Personnellement je l'ai interprêté comme cela, car sinon, il n'y a pas de question.

  11. #11
    Membre Expert
    Avatar de azstar
    Homme Profil pro
    Architecte Technique BizTalk/.NET
    Inscrit en
    Juillet 2008
    Messages
    1 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Technique BizTalk/.NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 198
    Par défaut
    d'après ce que j'ai compris que son instance classe (crée dans thread 1)

    exemple dans d'une instance de la forme 1 va subir une modification de l'un de ces variables par une autre thread.


    mais apres la relecture du problème je pense pas qu'il y' a de nécessite de l'interThreanding.

    cause de ambiguïté est la phrase
    Comment modifier une variable qui se trouve dans une autre classe et autre thread??
    desolé les mecs ,desolé Bluedeep

Discussions similaires

  1. Thread et variable de classe
    Par bobinouze dans le forum Débuter avec Java
    Réponses: 10
    Dernier message: 02/07/2010, 13h28
  2. Anonymous classes, variable final et concurrence entre threads.
    Par nouknouk dans le forum Concurrence et multi-thread
    Réponses: 4
    Dernier message: 29/03/2008, 16h59
  3. Réponses: 2
    Dernier message: 06/03/2006, 11h22
  4. Réponses: 13
    Dernier message: 15/11/2005, 15h47
  5. threads et variables communes
    Par buzzz dans le forum Windows
    Réponses: 3
    Dernier message: 21/02/2005, 13h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo