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 :

Gestion de ressource pour une fontion [Débutant]


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 Gestion de ressource pour une fontion
    Bonsoir, en rapport avec mon projet de localiser une ville, j'ai fait une fonction servant a trouver l'adresse ip publique (WAN), celle ci marche parfaitement seulement voila, lorsque j'appelle cette fonction la mémoire du processus monte enormement et ne redescend pas apres, alors que cette fonction ne retourne qu'un string.
    Et puisque je ne suis pas un expert en libération de ressources je vous sollicite pour m'apprendre a optimiser cette fonction.
    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
      Function IPwan()
            Dim WebBrowser1 As New WebBrowser
            Dim IP As String
            WebBrowser1.ScriptErrorsSuppressed = True
            Try
    a:
                WebBrowser1.Navigate("http://whatsmyip.net/")
                Do While WebBrowser1.ReadyState <> WebBrowserReadyState.Complete
                    Application.DoEvents()
                Loop
                Dim Source As String = WebBrowser1.DocumentText
                IP = Source.Substring(Source.IndexOf(">IP</acronym> Address is <input type=") + 51)
                IP = IP.Substring(0, IP.IndexOf(" /></h1>") - 1)
            Catch
                Try
                    WebBrowser1.Navigate("http://www.my-ip-address.net/")
                    Do While WebBrowser1.ReadyState <> WebBrowserReadyState.Complete
                        Application.DoEvents()
                    Loop
                    Dim Source As String = WebBrowser1.DocumentText
                    IP = Source.Substring(Source.IndexOf("Your IP Address is<br/><span>") + 29)
                    IP = IP.Substring(0, IP.IndexOf("</span"))
                Catch
                    GoTo a
                End Try
            End Try
            Return IP
        End Function
    Je vous remercie, bonne soirée

  2. #2
    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
    petit up

  3. #3
    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
    Dim WebBrowser1 As New WebBrowser
    =>

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Using WebBrowser1 As New WebBrowser
    ' ...
    End Using
    sinon ce code est moche :
    instancier un controle graphique non affiché est une perte de performance
    DoEvents est à éviter (surtout sans thread.sleep)
    s'il n'y a pas de connexion internet dispo ce code va boucler à l'infini et bouffer du processeur pour rien
    code redondant (2x la même chose écrite)
    et en plus il y a des api pour faire ca
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  4. #4
    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
    Bonsoir peltiarn ,

    Comme mentionné supra par Pol63 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
            Using wc As New Net.WebClient
                MsgBox(Regex.Match(wc.DownloadString(New Uri("http://services.packetizer.com/ipaddress/?f=text")), "(?<=IP_Address=).*").Value)
            End Using
    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
            Using wc As New Net.WebClient
                MsgBox(wc.DownloadString(New Uri("http://dynupdate.no-ip.com/ip.php")))
            End Using

    A+

  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
    Merci beaucoup à tout les deux, car en plus de m'aider a résoudre mon soucis, vous m'avez clairement expliqué les solutions et j'ai donc appris de nouvelles méthodes
    Merci 1000 fois

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

Discussions similaires

  1. [Joomla!] [Recherche] Gestion des adhérents pour une association
    Par xnopre dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 15/10/2010, 13h22
  2. Conseils pour gestion de ressources sur une requete
    Par joboy84 dans le forum Langage
    Réponses: 3
    Dernier message: 30/05/2009, 00h37
  3. [MCD] Gestion des stocks pour une pharmacie
    Par SmileSoft dans le forum Schéma
    Réponses: 160
    Dernier message: 22/05/2009, 21h16
  4. Gestion de permanence pour une association
    Par neoraptor dans le forum Langage
    Réponses: 9
    Dernier message: 19/11/2008, 18h18
  5. Utilisation ressources pour une appdata?
    Par Phelix2003 dans le forum MATLAB
    Réponses: 1
    Dernier message: 16/10/2007, 11h56

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