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

VB.NET Discussion :

Form bloquée et fonction qui boucle


Sujet :

VB.NET

  1. #1
    Membre à l'essai
    Inscrit en
    Juillet 2003
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 29
    Points : 20
    Points
    20
    Par défaut Form bloquée et fonction qui boucle
    Bonjour,

    Voila mon soucis, je voudrais, apres avoir verifié la valeur d´un parametre a lexecution du prog, executer une autre fonction automatiquement (sans intervention humaine), classe qui bosse entre 30 min et 1h (grosse boucle), le truc c que ca travaille avant que l´affichage de la form est lieu, ce qui fait que je ne peux voir comment ca avance( impossible de voir ma progressbar)

    la fenetre saffiche une fois que toutes les instructions dans le new(constructeur) ont ete executées, je dois attendre 1h lol avant que ma fenetre s´affiche


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Public Sub New()
            MyBase.New()
            InitializeComponent()   'Windows Stuff...
            objINI = New INI(IO.Path.Combine(System.Windows.Forms.Application.StartupPath, XMLfilename))
            ProgressBar.Maximum = 100
            loadArguments()
            'bosse dur ....
    'la fonction qui sexecute en boucle ici
        End Sub
    tant que je suis pas arrivé au End Sub (par debuggage) la form ne s'affiche pas

    Comment faire, auriez vous une idée ?
    Merci.
    Brice

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Il faut que tu lances la fonction qui prend du temps dans un autre thread :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Public Sub GrosseFonction(state As Object)
        ...
    End Sub
    et dans ton New() :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ThreadPool.QueueUserWorkItem(new WaitCallback(GrosseFonction));
    Ca exécutera la fonction en background, sans bloquer l'exécution du thread principal.

  3. #3
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 173
    Points : 25 113
    Points
    25 113
    Par défaut
    je dirais meme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim Th As New System.Threading.Thread(AddressOf TaSub)
                Th.IsBackground = True
                Th.Priority = Threading.ThreadPriority.Lowest
                Th.Start()
    si tu déclares Th pour la classe, ca te permet en plus de savoir si c'est fini avec Th.IsALive
    ou meme de l'arreter
    Th.Abort (génère une erreur de type system.Threading.ThreadAbortException dnas l'autre thread et donc tu peux traiter l'arret quand meme)
    mettre Th.join après Th.abort pour attendre qu'il s'arrete sinon il s'arrete en asynchrone et c'est pas forcément top

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

Discussions similaires

  1. Fonction qui "se bloque"
    Par devoluti0n dans le forum Langage
    Réponses: 8
    Dernier message: 23/01/2009, 00h47
  2. Réponses: 2
    Dernier message: 06/03/2008, 21h20
  3. Programme qui bloque avec fonction sort
    Par ultimate_manx dans le forum SL & STL
    Réponses: 10
    Dernier message: 29/11/2007, 20h06
  4. Réponses: 3
    Dernier message: 22/07/2005, 15h16
  5. Fonction qui s'active lorsqu'un Form bouge
    Par Xavier dans le forum C++Builder
    Réponses: 3
    Dernier message: 22/05/2003, 12h54

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