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

Windows Forms Discussion :

Freeze application c# [Débutant]


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mai 2016
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2016
    Messages : 135
    Par défaut Freeze application c#
    Bonjour,

    Voilà, quand je lance ma forme, j'ai un lonng morceau de code qui se lance et qui me permet de récupérer des informations de mon site pour les mettre sur la dite form.
    Néanmoins, quand la form s'ouvre, l'application freeze, alors je sais que c'est ce bout de code qui gêne car j'ai mis en commentaire l'ordre de lancement (puisque c'est une fonction à part exprès justement) et là l'application va très bien.
    J'ai lu le cours sur les threads en c# (lien ici), mais quand je place mon code dans le threadsloop, mes label et autres apparaissent en erreurs, comment je dois le formuler svp.?

    Cordialement
    Vazer7070

  2. #2
    Membre éprouvé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2011
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2011
    Messages : 79
    Par défaut
    Salut,

    Peux-tu poster un bout de ton code pour nous aider ?

    @+,
    Philippe

  3. #3
    Membre confirmé
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mai 2016
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2016
    Messages : 135
    Par défaut
    Je vous place le gros morceau qui fait freeze mon application:
    en lui-même, pour l'avoir tester, il fonctionne comme je veux.

    (code plus bas)

  4. #4
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2015
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mai 2015
    Messages : 38
    Par défaut
    Quelques chose du style , utilise async/await et les methodes associées .

    Si tu préfère utiliser les .Dispose met les dans Try{}catch(exceptions)Finally{res.Dispose();}



    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
    public async Task check()
            {
                            string url = "ftp://[yourIp]/public_html/Friend/" + Properties.Settings.Default.search1 + "_amis/";
                            string responseFromServer = null;
     
                            FtpWebRequest request = (FtpWebRequest)WebRequest.Create(url);
                            request.Credentials = new NetworkCredential("user", "pass");
                            request.Method = WebRequestMethods.Ftp.ListDirectoryDetails;
                            using (FtpWebResponse response = (FtpWebResponse )await request.GetResponseAsync())
                            using (Stream stream = response.GetResponseStream())
                            using (StreamReader readuser = new StreamReader(stream))
                            {
                               int nb = -2;
                               while ((readuser.Peek() > -1))
                               {
                                  await readuser.ReadLineAsync();
                                  nb += 1;
                                }
                               monoFlat_LinkLabel1.Text = nb.ToString();
                            }
    }
    Je te conseils aussi de séparé , //amis,//rang , etc , dans des méthodes séparées et dans des Thread séparé.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public async Task Check()
            {
                Task amis = Task.Run(async () => await Amis());
                Task rang = Task.Run(async () =>  await Rang());
     
                await Task.WhenAll(amis,rang);
            }
    Ps:évite de donner ton ip sur des forums

  5. #5
    Membre confirmé
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mai 2016
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2016
    Messages : 135
    Par défaut
    (c'est l'ip du serveur, donc après si ils veulent hack, c'est comme ils veulent, mais les québécois sont hardus x))

    Je te remercie de ton aide, je vais tester et revenir vers toi^^

  6. #6
    Expert confirmé

    Avatar de François DORIN
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2016
    Messages
    2 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Charente Maritime (Poitou Charente)

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

    Informations forums :
    Inscription : Juillet 2016
    Messages : 2 761
    Billets dans le blog
    21
    Par défaut
    Bonjour,

    Du coup, on n'a plus le code original ! Mais bon, la proposition de Biomega est tout à fait correct. L'utilisation de async/await est une manière d'éviter les gels de l'interface graphique.

    Une autre manière est d'utiliser un thread qui récupère et prépare toutes les informations nécessaires et ensuite notifie le thread graphique pour effectuer les mises à jour.

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

Discussions similaires

  1. Lancer form qui freeze l'application
    Par alacaraibe dans le forum Windows Forms
    Réponses: 2
    Dernier message: 15/12/2009, 17h17
  2. [Memset] Freeze de l'application
    Par Bleys dans le forum Bibliothèque standard
    Réponses: 22
    Dernier message: 02/09/2009, 12h10
  3. Mon application "FREEZE"
    Par donaldz dans le forum Langage
    Réponses: 2
    Dernier message: 08/04/2009, 22h27
  4. "Freeze" d'une application Java/SWING sur fedora 10
    Par logdrop dans le forum Agents de placement/Fenêtres
    Réponses: 5
    Dernier message: 27/03/2009, 16h26
  5. Freeze de l'application
    Par thierry007 dans le forum VB.NET
    Réponses: 6
    Dernier message: 09/10/2008, 12h59

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