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 :

Application VBNET ralentie sur W7 [Débutant]


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    261
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 261
    Par défaut Application VBNET ralentie sur W7
    Bonjour à tous,

    Voilà je reviens vers vous pour un petit soucis avec mon application VBNET.
    Je recherche une raison qui peut faire que mon programme soit ralenti sur certains PC sous Windows 7.

    Certains PC tournant sous XP ont été remplacés par des tout nouveaux PC tournant sous Windows 7.
    On a constaté que lorsque l'utilisateur cliquait sur un bouton pour faire afficher un Form, celui-ci apparait après environ 8 secondes alors que sur d'autres PC, il faut environ 1 seconde.

    Avez-vous des pistes pour savoir ce qui se passe sur ces PC ?

    Merci d'avance pour votre future aide et vos futurs conseils.

  2. #2
    Membre éclairé Avatar de Uranne-jimmy
    Homme Profil pro
    Bioinformatique
    Inscrit en
    Décembre 2012
    Messages
    778
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Bioinformatique
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2012
    Messages : 778
    Par défaut
    Bonjour,
    En premier lieu il faudrait expliquer (ou montrer le code) ce qui se passe au moment de l'ouverture du form, ça pourrait aiguiller vers la bonne raison.
    Ensuite, je pense que ça peut être un problème de version (32 ou 64 bits) ou encore au niveau des framework, bien que la compatibilité descendante est normalement pas un soucis (m'enfin windows quoi, on sait jamais).

  3. #3
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 202
    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 202
    Par défaut
    j'aurais tendance à penser que ca vient de ton code, et tu es le seul à l'avoir ...

    sinon tu peux utiliser system.diagnostics.stopwatch (chronomètre) pour isoler la portion de code qui prend du temps
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  4. #4
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    261
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 261
    Par défaut
    Hello,

    Alors concernant le code, je ne l'ai pas changé. Je peux vous mettre un extrait si vous le voulez.
    J'ai par exemple un datagridview qui contient des données. Si l'utilisateur fait un clic-droit cela affiche un menu contextuel. Dans cet exemple, l'utilisateur choisit une option qui permettra d'afficher les données contenues dans le datagridview dans un form puis l'affiche. Voici un extrait :

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    Private Sub Menumodifier_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Menumodifier.Click
            Try
                If Me.Table1DataGridView.SelectedRows.Count > 0 AndAlso _
                           Not Me.Table1DataGridView.SelectedRows(0).Index = _
                               Me.Table1DataGridView.Rows.Count - 1 Then
     
                    Dim i As Integer
                    i = Table1DataGridView.CurrentRow.Index
     
                    If i <> -1 Then
                        Form2.dc.Text = Table1DataGridView.Item(1, i).Value.ToString
                        Form2.dc.Enabled = True
                        Form2.origine.Text = Table1DataGridView.Item(2, i).Value.ToString
                        Form2.destination.Text = Table1DataGridView.Item(3, i).Value.ToString
                        Form2.nombre.Text = Table1DataGridView.Item(4, i).Value.ToString
     
                        Form2.observation.Text = Table1DataGridView.Item(23, i).Value.ToString
                        If Table1DataGridView.Item(19, i).Value = "NON" Then
                            Form2.nonate.Checked = True 
                            Form2.dateate.Visible = False
                            Form2.Label21.Visible = False
                            Form2.Label16.Visible = False
                            Form2.ateok.Visible = False
                            Form2.Label23.Visible = False
                        End If
                        If Table1DataGridView.Item(19, i).Value = "OUI" Then
                            Form2.ouiate.Checked = True
                            Form2.dateate.Visible = True
                            Form2.Label21.Visible = True
                            Form2.Label16.Visible = True
                            Form2.ateok.Visible = True
                         End If
     
                        Form2.valider.Enabled = False
                        Form2.Missionmod.Enabled = True
                        Form2.Missionok.Enabled = True
                        Form2.Missionmod.Select()
                    End If
                Else
                    Exit Sub
                End If
     
            Catch ex As Exception
                MsgBox(Err.Description)
            End Try
            Form2.valider.Select()
            Form2.ShowDialog()
        End Sub
    Environ 8 secondes sur W7 et même pas 2 sur un XP.
    Concernant le Framework, l'appli était compilé avec la version 2. Même avec la 4, j'ai le même problème de lenteur jusqu'à ce que le Form2 apparaisse.

  5. #5
    Expert confirmé Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Par défaut
    Je ne vois rien qui explique le probklème de performance dans ton code.

    Teste si le problème se résoud quand on change le thème d'affichage en Windows classique (dans ce cas ce serait lié à la transparence).

    Mets un MessageBox.Show() juste avant le ShowDialog() pour vérifier que le problème survient au niveau du Form2.ShowDialog().
    Si c'est le cas comme je le crois, quels sont les events de la form qui pourraient être exécutés lors de l'activation de Form2() ?

  6. #6
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 202
    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 202
    Par défaut
    Citation Envoyé par IL-MAFIOSO Voir le message
    Alors concernant le code, je ne l'ai pas changé.
    ca on s'en serait douté ^^


    la méthode de Graffito peut convenir aussi, le but c'est de trouver la ou les lignes qui prennent du temps


    sinon l'utilisation d'une form par son nom sans variable n'est pas recommandé, ca vient peut etre de là
    les controles non nommés c'est moche aussi (label21 et autres)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  7. #7
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    261
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 261
    Par défaut
    Hello,

    Concernant le nom de certains labels, c'est vrai que j'aurais pu les renommer....
    Sinon :

    - Si je bascule en affichage classique, cela ne change rien ....
    - J'ai mis un msgbox juste avant le Form2.Showdialog() et la msgbox apparait en moins d'une seconde .... mais le Form2 apparait toujours après plusieurs secondes.

    J'ai regardé du côté de l'event et effectivement je crois que le soucis vient de là :
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    Private Sub Form2_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
     
            origine.AutoCompleteMode = AutoCompleteMode.Suggest
            origine.AutoCompleteSource = AutoCompleteSource.CustomSource
            destination.AutoCompleteMode = AutoCompleteMode.Suggest
            destination.AutoCompleteSource = AutoCompleteSource.CustomSource
     
            Call connection7()
     
            Dim Cmd As OleDbCommand
            Dim Dr As OleDbDataReader
            Dim Cn As New OleDbConnection(base1 & base9)
     
            Try
                Cmd = New OleDbCommand("Select Gares from Suggestions", Cn)
                Cn.Open()
                Dr = Cmd.ExecuteReader
                While Dr.Read
                    origine.AutoCompleteCustomSource.Add(Dr.GetString(0))
                    destination.AutoCompleteCustomSource.Add(Dr.GetString(0))
                End While
                Dr.Close()
                Cn.Close()
            Catch ex As Exception
                MsgBox(Err.Description)
            End Try
     
        End Sub
    Comme vous le voyez, je me connecte à une BDD pour rapatrier une liste de mot qui seront suggérés lors de la saisie dans 2 textbox ...
    Y-a-t-il un moyen d'accélérer cette fonction ? Ou de changer la méthode ?

    Ce qui est drôle est que sur un PC sous XP, c'est plus rapide alors que les deux PC XP et Seven se connecte au même lecteur réseau .....

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

Discussions similaires

  1. [VB.NET] Programmer une Application qui tourne sur un PDA?
    Par Bils dans le forum Windows Forms
    Réponses: 1
    Dernier message: 27/01/2006, 04h23
  2. Application en permance sur le bureau.
    Par deetox dans le forum Composants VCL
    Réponses: 11
    Dernier message: 27/08/2004, 00h44
  3. [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
  4. application qui connecte sur une page web
    Par spoolz dans le forum Entrée/Sortie
    Réponses: 6
    Dernier message: 14/04/2004, 09h47
  5. Réponses: 7
    Dernier message: 17/07/2003, 11h00

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