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

ASP.NET Discussion :

C# Probleme de debutant POO


Sujet :

ASP.NET

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 21
    Par défaut C# Probleme de debutant POO
    Bonjour,
    Je suis en train de bosser sur une appli web, j'ai la classe de mon appli avec differentes methodes et des variables membres, je precise que je n'ai pas d'experiences en c# etant donne que j'ai principalement travaille en java et c++.

    Mon probleme : Dans une methode de la classe je modifie un membre et la modif est perdu a la sortie de methode...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    public partial class _Default : System.Web.UI.Page 
    {
        protected static bool moulinette_running;
    ....
    ...
     
    protected void mouliner(object sender, EventArgs e)
        {
             moulinette_running=false;
    ....
    ...
    En testant ds une autre methode la variable est retournee a true...
    Je craque.
    help ?

  2. #2
    Membre Expert Avatar de LaChips
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    1 109
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 109
    Par défaut
    Bonjour,
    Est ce qu'en mode débug, tu as bien testé que tu passes bien par la méthode :
    protected void mouliner(object sender, EventArgs e)

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 114
    Par défaut
    Ta variable n'est statique que dans le thread en cours.

    Si tu cliques sur un bouton de ta page, cela génère un nouveau thread donc un nouvel objet _Default est créer. Donc la variable statique est à true.

    Pour conserver une valeur soit tu la stocke dans un champs hidden de ta page, soit dans une variable de session

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 21
    Par défaut
    La classe est recréé a chaque event ?.....
    Mais jvais droit dans le mur du coups , si je ne conserve rien entre chaque appel, quand a conserver les membres ds des variable session ca parait tres lourd (quand a sauvegarder un tableau de string ds la session ,ca me parait tendu...)

    Va falloir que je trouve une autre solution ke cette page aspx avec code c#.
    .merci en tout cas...

  5. #5
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    700
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 700
    Par défaut
    eu...
    un membre static dans une page est commun avec tous les utilisateurs... il ne se recréé pas a chaque fois... C'est meme plutot dangereux...

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 114
    Par défaut
    J'ai fait un test.

    Je mets une variable statique dans une de mes classes Page et je lui affecte une valeur.
    Sa valeur est réinitialiser à chaque chargement

  7. #7
    Membre émérite
    Profil pro
    Inscrit en
    Août 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2003
    Messages : 835
    Par défaut
    Une variable statique en .net est commune à tout l'appDomain où est chargée l'assembly. Pour faire vite dans le cadre de asp.net ça veut dire que même si la classe en question est effectivement instanciée à chaque appel de la page, la variable statique n'est pas réinitialisée, SAUF si bien sûr c'est toi même qui le fait. Est-ce que tu fais qque part "moulinette_running = true;" ?
    Autre phénomène possible : sur une machine multiprocesseur il se peut qu'une modification effectuée dans le cache d'un des processeurs ne soit pas vue depuis un autre processeur, problème classique en multithreading. Dans ce cas il faut synchroniser l'accés à la variable en question, avec un lock par exemple, ou en déclarant la variable volatile.

    Cela dit, effectivement conserver des valeurs dans des variables statiques est potentiellement une mauvaise idée en asp.net puisque cette valeur est partagée par tous les utilisateurs. En asp.net la méthode est plutot de passer par des variables de session, stockage en base de données ect...

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 71

Discussions similaires

  1. [CSS] probleme de debutant
    Par discogarden dans le forum Mise en page CSS
    Réponses: 21
    Dernier message: 21/12/2005, 15h54
  2. Probleme inconnu... [debutant]
    Par The_Zarabe dans le forum C
    Réponses: 8
    Dernier message: 27/10/2005, 19h31
  3. quelques problemes de debutant avec count
    Par shirya dans le forum Langage SQL
    Réponses: 4
    Dernier message: 20/09/2005, 22h14
  4. probleme de debutant sous access
    Par guili dans le forum Access
    Réponses: 8
    Dernier message: 23/06/2005, 16h39
  5. Problème pour debuter avec glut
    Par ismael14 dans le forum GLUT
    Réponses: 2
    Dernier message: 26/07/2004, 10h37

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