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 :

Gestion thread pour alléger le code


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Octobre 2006
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 61
    Par défaut Gestion thread pour alléger le code
    Bonjour tout le monde ,

    J'ai crée une application qui fait des calculs assez longs : Problème d'optimiqation .
    Pour cela j'ai une form parente à laquelle j'ai rajouté un menu.
    Dans le menu Fivhier : plusiers sous menus , entre autres : entre autre Nouveau et Demarrer le calcul.
    Nouveau : charge une form 2 pour saisir les données.
    Démarrer : utiliser ces données pour commencer le calcul, et charge une form3 avec des graphiques et l'évolution des calculs.

    j'ai crée un thread pour gérer le calcul et l'affichage graphique: Tout se passe bien , mais une fois la form3 chargée, je ne peux rien faire sur les autres forms, que ce soit la principale ou l'autre: Le code n'est donc pas assez fluide.

    Auriez vous des idées s'il vous plait ? je sais pas quoi faire ?

    Merci d'avance

  2. #2
    Invité de passage
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2008
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2008
    Messages : 1
    Par défaut
    Tu as essayé d'insérer un Application.DoEvents() dans ton calcul ?

  3. #3
    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
    ne surtout pas utiliser de doevents

    je ne comprends pas trop la fin de ton soucis
    à priori démarrer un thread est la bonne solution, mais il faut le démarrer au bon moment, à priori form3 devrait s'ouvrir et lancer le thread
    de cette manière toutes les fenetres doivent etre fluides

    sinon il y a la possibilité d'ouvrir chaque fenetre dans un thread graphique différent, ca doit etre avec system.Windows.Forms.Application.Run(form)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  4. #4
    Membre confirmé
    Inscrit en
    Octobre 2006
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 61
    Par défaut
    Salut
    merci pour les réponses ..je vais voir vos suggestions ..je suis bien débutant .
    mais pour répondre , le thread je le lance bien au niveau de la form 3 ( la ou il y a affichage des graphiques ) ...
    ce que je souhaite c'est que l'utilisateur puisse afficher cette form ou l'autre sans que ca rame ...c'est pas encore le cas

    faut il peut etre mettre le restant du code dans des threads aussi ?

  5. #5
    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
    ton thread tu le demarres bien de la sorte :
    dim th as new thread(addressof sub_traitement)
    th.start
    ?

    après tu peux rajouter th.priority = belownormal

    mais normalement quand tu fais ca tu peux passer d'une fenetre à l'autre sans problème, vu que le reste du programme ne fait rien qu'attendre ...
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  6. #6
    Membre confirmé
    Inscrit en
    Octobre 2006
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 61
    Par défaut
    Voila exactement ce que je fais :

    Code vb : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Public trd As Thread
    Private Sub Form3_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
     
            trd = New Thread(AddressOf principal)
     
            trd.IsBackground = True
     
            trd.Start()
     
     End Sub

    Merci pour tes remarques

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

Discussions similaires

  1. Gestion des threads pour les services
    Par Faekk dans le forum Windows
    Réponses: 6
    Dernier message: 26/07/2011, 09h05
  2. Intégrer une variable pour alléger mon code ?
    Par castelcerf dans le forum jQuery
    Réponses: 3
    Dernier message: 06/10/2010, 12h52
  3. Réponses: 7
    Dernier message: 05/04/2010, 02h11
  4. aide pour alléger mon code simple mais long
    Par tuco_benedicto dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 13/03/2010, 20h52
  5. [SQL + VB.NET] Alléger mon code pour un accès plus rapide
    Par Miles Raymond dans le forum VB.NET
    Réponses: 8
    Dernier message: 15/10/2007, 23h09

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