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 :

Récupération sur le web


Sujet :

VB.NET

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Février 2006
    Messages
    505
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Février 2006
    Messages : 505
    Points : 293
    Points
    293
    Par défaut Récupération sur le web
    Bonjour à tous

    Je fais une opération de récupération de page web, je charge plus de 2000 pages web en format txt (ce qui représente 64373 0ctets) dans un délai d'environ 28 minutes, ce qui représente environ 40 octets seconde. je me demande comment améliorer si possible la vitesse de chargement.

    Mario

  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
    faire des threads
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Février 2006
    Messages
    505
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Février 2006
    Messages : 505
    Points : 293
    Points
    293
    Par défaut
    ok, présentement mes adresses web sont dans un fichier txt que je met en tableau pour ensuite les passer dans ma procédure de récupération. Supposons que je planifis 5 threads,

    1. est-ce que je dois diviser mon fichier txt en 5 tableaux?
    2. ou je dois faire appel à la fonction de queue pour alimenter mes threads si oui un tutos SVP

    A noter que dans mon Status strip j'ai un progress bar et un compteur.

    merci de votre aide
    Mario

  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
    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
     
        Private _Links As New System.Collections.Generic.Queue(Of String)
        Private _Verrou As New Object
     
        Private Function GetLink() As String
            SyncLock _Verrou
                If _Links.Count = 0 Then Return Nothing
                Return _Links.Dequeue
            End SyncLock
        End Function
     
     
     
        Private Sub StartThreadsDL()
            For i As Integer = 0 To 10
                Dim th As New System.Threading.Thread(AddressOf DL)
                th.IsBackground = True
                th.Start()
            Next
        End Sub
     
     
        Private Sub DL()
            While True
                Dim l As String = GetLink()
                If l Is Nothing Then Exit Sub
                'traitement pour récupérer
                MonProgressBar.Invoke(New Action(AddressOf MajProgressBar))
            End While
        End Sub
     
     
        Private Sub MajProgressBar()
             'faire +1 sur le progressbar
        End Sub
    le queue(of ) est une collection (les tableaux c'est démodé, il y a plusieurs types de collections)
    .enqueue ajoute un élément
    .dequeue prend le 1er élément et le retire de la liste

    le synclock sert à sécuriser le multithreading, si 2 thread font .dequeue en meme temps ca plante, donc là on s'assure qu'un seul le fera à la fois

    donc ici on ne découpe pas le tableau en x partie, mais chaque thread vient chercher un lien quand il en a besoin (car si tu donnes 5 liens à 2 threads, et qu'il y en a un qui a fini avant l'autre tu n'auras plus threads qui travaille)
    et quand il n'y a plus de liens, les threads s'arretent

    pour les perfs fait des essais avec 2, 5, 10, 20 threads etc... pour voir ce qui est le mieux, même avec un core ca peut etre utile, car le débit des serveur web est aussi en jeu

    le progressbar.invoke sert à exécuter la sub précisée après sur le thread du progressbar car on ne peut modifier un control que depuis le thread qui l'a créé

    ici c'est de la création de thread standard dira-t-on, il est aussi possible d'utiliser le backgroundworker qui se trouve dans la boite à outils, ca encapsule plusieurs trucs utiles en multithreading
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Février 2006
    Messages
    505
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Février 2006
    Messages : 505
    Points : 293
    Points
    293
    Par défaut
    Merci beaucoup Pol63

    je travail la dessus à on retour de vacance.

Discussions similaires

  1. Problème récupération item sur page web
    Par EngueEngue dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 20/08/2013, 13h29
  2. [XL-2007] Récupération d'infos sur page WEB
    Par issoram dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 17/11/2010, 11h38
  3. Récupération d'un texte depuis un .txt sur le web
    Par warvector dans le forum Débuter
    Réponses: 2
    Dernier message: 24/02/2009, 00h47
  4. Récupération d'un fichier XML sur le web
    Par ZeVlad dans le forum Bibliothèques
    Réponses: 1
    Dernier message: 30/01/2007, 02h50

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