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 :

ProgressBar: affichage trop lent


Sujet :

VB.NET

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2014
    Messages : 55
    Points : 41
    Points
    41
    Par défaut ProgressBar: affichage trop lent
    Bonsoir a tous, si je poste ce soir c'est à cause d'un soucis d'affichage de progressbar.
    Je m'explique, dans une application je veux qu'un événement mette la valeur d'une progressbar a 1 lorqu'il commence puis qu'il la mette a 100 une fois qu'il s'acheve.
    Sachant que cet événement se répéte tout le temps et tres rapidement, la progress bar n'a pas le temps " d'afficher " sa valeur a 100 qu'elle revient aussitot a 1 , c'est a dire que la barre verte ne monte qu'a environ la moitié de sa valeur maximale puisque l'affichage n'est pas aussi rapide que l'affectation de valeur.

    Je me demande donc s'il est possible " d'accélérer " l'affichage pour que l'on puisse voir (meme tres brievement) la barre verte atteindre son maximum.

    Bonne soirée.

  2. #2
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    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 154
    Points : 25 072
    Points
    25 072
    Par défaut
    pas simple à comprendre mais ca sent le bricolage
    le code ?


    le progressbar ne fera que ce que tu lui dit de faire ...
    normalement l'utilisation du progressbar, c'est de changer la valeur selon l'avancement réelle de l'exécution du code, même ce n'est pas toujours simple à mettre en place
    genre si on a 5 trucs à faire, on avance donc 5x ; si les choses à faire prennent le même temps on avance de 20, sinon il faut trouver le temps de chaque tâche approximativement
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2014
    Messages : 55
    Points : 41
    Points
    41
    Par défaut
    Oui je voulais bricoler puisque je ne sais pas incrémenter une progressbar par rapport à un memoystream

    ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
      Dim ms As New MemoryStream(Convert.FromBase64String(image))
                                Dim bmp As Bitmap = Bitmap.FromStream(ms)
                                ms.Dispose()
                                ms.Close()
                                PictureBox1.Image = bmp
    ...

    Je suppose également que je ne devrais pas utiliser un ".dispose" et un ".close" comme je le fais

  4. #4
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    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 154
    Points : 25 072
    Points
    25 072
    Par défaut
    un progressbar c'est bien pour les trucs de plus de 20s
    je ne pense pas que ce code prenne du temps
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2014
    Messages : 55
    Points : 41
    Points
    41
    Par défaut
    Cest effectivement le cas pour des images mais jen ai besoin pour des fichiers de tailles consequentes car lutilisateur ne sait pas si la lecture est bien en cours ou a ete interrompue

  6. #6
    Expert confirmé
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Points : 4 005
    Points
    4 005
    Billets dans le blog
    7
    Par défaut
    Bonjour peltiarn,

    Personnellement pour charger des images de taille conséquentes j'utilise la méthode "LoadASync" de l'objet pictureBox.
    Ensuite j'incrémente la barre de progression dans le gestionnaire d'évènement "LoadProgressChanged".
    Enfin la fin du chargement s'achève dans le gestionnaire "LoadCompleted".

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
        Private sub LoadPicture
            Me.Pgb.Value = 0
            Me.Pbx.LoadAsync(image)
        End Sub
     
        Private Sub Pbx_LoadProgressChanged(ByVal sender As System.Object, ByVal e As ProgressChangedEventArgs) Handles Pbx.LoadProgressChanged
            If Not e.ProgressPercentage > 100 Then
                Me.Pgb.Value = e.ProgressPercentage
            End If
        End Sub
     
        Private Sub Pbx_LoadCompleted(ByVal sender As Object, ByVal e As System.ComponentModel.AsyncCompletedEventArgs) Handles  Pbx.LoadCompleted
            Msgbox("Chargement terminé !")
        End Sub
    A+

  7. #7
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2014
    Messages : 55
    Points : 41
    Points
    41
    Par défaut
    Euh jeviens de me rendre compte que je n'ai pas précisé qu'il s'agissait d'un transfert de fichier par TCP/IP
    je ne peux donc pas utiliser "PictureBox1.LoadAsync()"

  8. #8
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    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 154
    Points : 25 072
    Points
    25 072
    Par défaut
    Citation Envoyé par peltiarn Voir le message
    transfert de fichier par TCP/IP
    C'est à dire ?

    De toute façon par tcp tu peux aussi faire de l'asynchrone en le codant toi même
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

Discussions similaires

  1. OpenNI : problème affichage trop lent
    Par Shurtagh dans le forum OpenCV
    Réponses: 19
    Dernier message: 14/06/2011, 10h23
  2. Affichage trop lent de Compte(reg) après 1 filtre dans un formulaire
    Par Drarack dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 24/08/2008, 18h09
  3. [JDialog] Affichage trop lent.
    Par Invité dans le forum Agents de placement/Fenêtres
    Réponses: 3
    Dernier message: 26/07/2006, 15h04
  4. [SAGE] ODBC trop lent
    Par tileffeleauzed dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 14/11/2004, 09h56
  5. Envoi de mail trop lent
    Par MASSAKA dans le forum ASP
    Réponses: 3
    Dernier message: 15/10/2004, 10h57

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