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 :

[.Net]Application non fluide : threads?


Sujet :

Windows Forms

  1. #1
    Rédacteur

    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    494
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2007
    Messages : 494
    Points : 1 057
    Points
    1 057
    Par défaut [.Net]Application non fluide : threads?
    Bonjour tout le monde

    Je suis actuellement en train de développer un casse brique en VB.Net, dans le cadre de mon BTS Informatique de Gestion.

    Pour le déplacement de la raquette, j'utilise un MouveMove :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
        Private Sub frmJeu_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseMove
     
            With picRaquette
                .Left = e.X - .Width / 2
            End With
     
        End Sub
    Pour gérer les mouvements de ma balle, j'utilise un timer qui permet, à l'aide de deux variables, le déplacement de celle-ci. Il en va de même pour mes bonus.

    Comme il est difficile de s'imaginer tout cela, j'ai uploader mon application et voici le lien : http://dl.free.fr/hlxleyEX0/cassebrique.zip

    Mon probleme est que, quand je bouge la raquette, la balle se stoppe est n'avance plus. Il en va de même quand un bonus tombe, la balle ralentit...

    Mon prof m'a parlé des threads. Pensez vous que cela permettrait de résoudre ce probleme? Si oui, pouvez vous m'indiquer dans quel sens?

    Je vous remercie de votre aide, en espérant avoir clairement exposé mon problème.

    Cordialement

  2. #2
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Points : 6 334
    Points
    6 334
    Par défaut
    Je n'ai pas regardé ton application, mais à priori, oui tu as besoin des threads car le déplacement de la balle, celui du curseur, etc sont des actions distinctes.
    Tu peux consulter les tutos pour en apprendre plus.

  3. #3
    Inactif  
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    497
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 497
    Points : 312
    Points
    312
    Par défaut
    Mon probleme est que, quand je bouge la raquette, la balle se stoppe est n'avance plus
    ou moins vite


    C'est normal, tu as un processus, et tu veux gerer deux évenements simultanément, alors il (processus) essaie de partager les temps de calculs & d'executions entre les mouvements de la raquette et le déplacement de la balle ... et suivant le niveau de priorité il fera d'abord les traitements de la raquette et ensuite les traitements de la balle ou l'inverse

    Solution : MultiThread

  4. #4
    Rédacteur

    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    494
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2007
    Messages : 494
    Points : 1 057
    Points
    1 057
    Par défaut
    tout d'abord merci à vous deux pour vos réponses

    Je vais donc devoir m'attaquer aux threads lol Par contre, je suis allé voir le lien que tu m'as passé 19cmos83, et j'ai quelques questions :

    1) Un backgroundWorker est-il la même chose qu'un thread?
    2) Est-il possible d'en mettre plusieurs dans la même appli (le site à a l'air de dire le contraire)

    Je vous remerci pour vos réponses
    Cordialement

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

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Citation Envoyé par Finality Voir le message
    tout d'abord merci à vous deux pour vos réponses

    Je vais donc devoir m'attaquer aux threads lol Par contre, je suis allé voir le lien que tu m'as passé 19cmos83, et j'ai quelques questions :

    1) Un backgroundWorker est-il la même chose qu'un thread?
    Un BGW permet de gérer un thread background de manière assez "transparente".

    2) Est-il possible d'en mettre plusieurs dans la même appli (le site à a l'air de dire le contraire)
    Jamais testé. Le BGW étant par nature fortement orienté IHM, ce n'est pas en général un contexte où on procède à des parallélisations massives.

  6. #6
    Rédacteur

    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    494
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2007
    Messages : 494
    Points : 1 057
    Points
    1 057
    Par défaut
    ok merci pou ta reponse

    Donc j'en déduis que je dois me pencher sur les threads, et non les BGW. Par contre connaitrez vous un bon tuto pour apprendre, car j'avais deja fait une tentative mais je me suis très vite perdu

    Merci encore pour votre aide
    Cordialement

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

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Citation Envoyé par Finality Voir le message
    ok merci pou ta reponse

    Donc j'en déduis que je dois me pencher sur les threads, et non les BGW. Par contre connaitrez vous un bon tuto pour apprendre, car j'avais deja fait une tentative mais je me suis très vite perdu
    Regarde la classe ThreadPool

  8. #8
    Inactif  
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    497
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 497
    Points : 312
    Points
    312
    Par défaut
    1) Un backgroundWorker est-il la même chose qu'un thread?

    Le bgw est un composant qui te donne la possibilité d'exécuter plein d'opérations en asynchrone, sur un thread autre que le thread principal de l'appli.


    Un thread, fonctionne comme un processus. Mais eux (les processus) possède chacun sa propre mémoire virtuelle, les Threads quant à eux appartenant au même processus père se partagent sa mémoire virtuelle.

    C-a-d : Plein de threads dans un processus se partageant ces ressources.

    Msdn, pour commencer

  9. #9
    Expert confirmé
    Avatar de Aspic
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    3 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2005
    Messages : 3 905
    Points : 4 388
    Points
    4 388
    Par défaut
    Citation Envoyé par Finality Voir le message
    1) Un backgroundWorker est-il la même chose qu'un thread?
    2) Est-il possible d'en mettre plusieurs dans la même appli (le site à a l'air de dire le contraire)
    Va sur ce site, il y a un tutos sur le backgroundworker et sur mon domaine tu trouveras une source détaillé sur cela !
    http://aspic.developpez.com

  10. #10
    Rédacteur

    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    494
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2007
    Messages : 494
    Points : 1 057
    Points
    1 057
    Par défaut
    bonjour tout le monde,

    tout d'abord désolé pour la réponse tardive mais j'ai eu une fin de semaine bien chargée

    Aspic, j'ai suivi ton lien et miracle : j'ai fait marché mon premier thread ^^ Maintenant une autre question vient a moi ^^

    Serait il possible d'appelé un thread en fonction d'un evenement qui se repete.
    Car j'ai essayé d'appliqué un thread.start sur un MOuseMove, et un message apparait en me disant que le thread est déja en cours

    Merci pour vos réponses qui m'aident grandement
    Cordialement

  11. #11
    Expert confirmé
    Avatar de Aspic
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    3 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2005
    Messages : 3 905
    Points : 4 388
    Points
    4 388
    Par défaut
    Oui c'est possible, tu veux faire quoi exactement ?

Discussions similaires

  1. Réponses: 2
    Dernier message: 15/11/2010, 18h13
  2. Framework .NET 2.0: application non portable
    Par alceste dans le forum C++
    Réponses: 10
    Dernier message: 16/06/2006, 08h20
  3. [VB.NET] Application console et arguments
    Par Raduris dans le forum Windows Forms
    Réponses: 5
    Dernier message: 10/01/2005, 17h17
  4. Réponses: 2
    Dernier message: 15/05/2004, 18h33
  5. [VS.NET] Application asp1.1 sur IIS 5.1
    Par Estoril dans le forum Visual Studio
    Réponses: 8
    Dernier message: 02/05/2004, 17h10

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