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

Windows Forms Discussion :

[VS 2003][dessin] synchronizer un thread avec une forme


Sujet :

Windows Forms

  1. #1
    Membre actif
    Homme Profil pro
    Création de jeux video (en amateur)
    Inscrit en
    Mars 2003
    Messages
    408
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Cantal (Auvergne)

    Informations professionnelles :
    Activité : Création de jeux video (en amateur)
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 408
    Points : 260
    Points
    260
    Par défaut [VS 2003][dessin] synchronizer un thread avec une forme
    Bonjour,

    Je souhaite afficher régulièrement un dessin qui change.
    Avec un form.timer ca marche mais c'est trop lent, ou alors ca sature vite l'execution.

    Je déporte donc dans un thread.
    Ce thread est donc chargé de dessiner à interval régulier pleins de choses sur un control.

    Mais il semble que lesystème de thread ne soit pas synchronisé avec l'évènement de refresh() du control, donnant un effet de trainées noires, qui n'apparaissaient pas avec le système de timer.

    Sous C++ builder, il fallait faire un synchronize et le nom de la méthode si je me souviens bien.
    en C# que faut-il faire ?

    D'avance merci,
    ZTAB (Ze Text Adventure Builder)

    Logiciel très intuitif et ergonomique de création de jeux d'aventure et de livres dont vous êtes le héros.

    http://sites.google.com/site/ztabsoft/

  2. #2
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    Ceci: http://faqcsharp.developpez.com/?pag...d#thread_start
    ne repond-il pas à ton besoin :
    Où déclenches-tu ce thread, au sein de quel autre evenement
    Pour le bien de ceux qui vous lisent, ayez à coeur le respect du forum et de ses règles

  3. #3
    Membre actif
    Homme Profil pro
    Création de jeux video (en amateur)
    Inscrit en
    Mars 2003
    Messages
    408
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Cantal (Auvergne)

    Informations professionnelles :
    Activité : Création de jeux video (en amateur)
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 408
    Points : 260
    Points
    260
    Par défaut
    bonjour,

    non ca n'y répond pas du tout, car la question n'est pas "comment créer un thread" mais "comment synchroniser le rafraichissement d'un control, avec le thread qui dessine dedans."

    Mon thread est lancé dasn un évenment de type clic sur un bouton, mais je ne pense pas que le problème vienne de là.
    ZTAB (Ze Text Adventure Builder)

    Logiciel très intuitif et ergonomique de création de jeux d'aventure et de livres dont vous êtes le héros.

    http://sites.google.com/site/ztabsoft/

  4. #4
    DrQ
    DrQ est déconnecté
    Membre expérimenté
    Avatar de DrQ
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    388
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 388
    Points : 1 515
    Points
    1 515
    Par défaut
    Tu dois utiliser les méthodes Invoke / BeginInvoke / EndInvoke de ton contrôle à l'intérieur du thread. De plus évite le Refresh et fait plutot un Invalidate ça laisse au système la gestion de rafraichissement plutot que de forcer un retracage complet.
    1)http://www.developpez.com/cours/
    2)Recherche
    3)Posez votre question en suivant les règles
    _oOo-DrQ-oOo_

  5. #5
    Membre actif
    Homme Profil pro
    Création de jeux video (en amateur)
    Inscrit en
    Mars 2003
    Messages
    408
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Cantal (Auvergne)

    Informations professionnelles :
    Activité : Création de jeux video (en amateur)
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 408
    Points : 260
    Points
    260
    Par défaut
    Merci DrQ, ainsi donc c'était invoke qu'il fallait utiliser.

    Avec ce mot clef, j'ai pu trouver un tutoriel qui explique comment on s'en sert : http://www.codeproject.com/csharp/begininvoke.asp, c'est un peu tiré par les cheveux comme usage, mais bon... tant que ca marche.

    PS: j'ai utilisé le mot "refresh" pour faire allusion au rafraichissement opéré par le control, mais ce que je fait dans le control n'appelle pas la methode refresh().
    ZTAB (Ze Text Adventure Builder)

    Logiciel très intuitif et ergonomique de création de jeux d'aventure et de livres dont vous êtes le héros.

    http://sites.google.com/site/ztabsoft/

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

Discussions similaires

  1. Thread avec une fonction membre d'une classe
    Par Krishna dans le forum Threads & Processus
    Réponses: 2
    Dernier message: 14/07/2008, 23h43
  2. Thread avec une progressBar
    Par barbiche dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 09/10/2007, 00h12
  3. Réponses: 9
    Dernier message: 24/08/2007, 12h37
  4. Réponses: 3
    Dernier message: 05/10/2006, 13h16
  5. Thread avec une fonction membre d'une classe
    Par SteelBox dans le forum Windows
    Réponses: 6
    Dernier message: 01/03/2004, 01h15

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