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

Dotnet Discussion :

[WinForms]Comment partager des objets entre threads ?


Sujet :

Dotnet

  1. #1
    Nouveau membre du Club Avatar de AiSpirit
    Inscrit en
    Mai 2005
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 41
    Points : 35
    Points
    35
    Par défaut [WinForms]Comment partager des objets entre threads ?
    Voilà,
    j'ai une applis simple qui utilise les listeViews et un timer.
    Le but du timer est de consulter un fichier pour mettre à jour la liste automatiquement.

    Mais le problème, c'est que je dois accéder à la listview (items.clear() et items.add()).
    Et c'est bien sûr sur le item.clear() que j'ai un problème d'accès : thread non propriétaire, quand c'est un timer qui fait l'opération.
    Mais via un bouton, la même fonction marche très bien.

    Comment peut on faire pour dire qu'un objet est partageable ? Il y a t il un mot clé pour ? ou une autre solution ?

    Merci

  2. #2
    Membre expérimenté Avatar de Mose
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 143
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 143
    Points : 1 379
    Points
    1 379
    Par défaut
    static pour partager des données entre thread d'un même processus.
    En revanche, si c'est pour accéder à un Control par un autre thread, c'est pas ça qu'il faut utiliser, mais BeginInvoke.

  3. #3
    Membre éprouvé
    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
    Points : 1 046
    Points
    1 046
    Par défaut
    Salut,

    Ici un excellent article sur le multi-threading en .Net, tu y trouveras en particulier une section spécifique aux winforms. Comme le dit Mose il y a du BeginInvoke dans l'air, trés bien expliqué dans l'article.

  4. #4
    Nouveau membre du Club Avatar de AiSpirit
    Inscrit en
    Mai 2005
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 41
    Points : 35
    Points
    35
    Par défaut
    Merci pour vos réponses et désolé pour le mon retard (ah, c'est pont du 15 Août ... ).
    BeginInvoke est en effet la solution !
    un lien codeproject qui le détaille et explique un peu tout ça :
    http://www.codeproject.com/csharp/begininvoke.asp

    Sinon, static ne marche en effet que pour les threads d'une même classe, par contre pour les threads crées à partir d'une classe (par exemple gestion des évènements timer, niet !)

    Encore merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. comment partager des données entre les sessions
    Par jesslegende dans le forum Langage
    Réponses: 9
    Dernier message: 12/03/2011, 23h16
  2. Partager des variables entre Threads
    Par ToTo13 dans le forum Concurrence et multi-thread
    Réponses: 7
    Dernier message: 01/04/2010, 16h09
  3. [Stratégie] Partager des objets entre servlets et classes
    Par Luke58 dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 06/08/2009, 19h31
  4. [javaBean + JSP] comment partager un objet entre les page JSP
    Par subzero82 dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 31/05/2006, 18h48

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