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 :

[loop] ralentir le traitement d'une boucle


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 60
    Par défaut [loop] ralentir le traitement d'une boucle
    Bonjour, bonjour!
    Dans mon appli, j'envoie des infos à un autre logiciel par le biais d'une boucle.
    Le traitement contient environ 50 "requetes" et la boucle est exécutée 10 fois de suite. Le problème c'est que je pense que mon pc ne supporte pas toujours ces 500 envois d'un coup et l'appli plante assez souvent. J'aurais voulu ralentir ce traitement, par exemple exécuter un tour de boucle en 1sec. Ce qui ferait 10sec pour tout envoyer.
    Est-ce possible de faire ça??

    Merci

    Jontleman

  2. #2
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    Mets en attente la boucle avec Sleep (quoique je ne crois pas une seule seconde ton explication de PC qui supporte pas : à mon avis il y a quelque chose de pourri au niveau de ton code ou de ton design).

  3. #3
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    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 204
    Par défaut
    sleep n'est pas toujours conseillé enfin dans le cas d'un thread principal

    sinon en effet ton appli qui plante vient de forcément de ton code qui bug (utiliser des try catch pour détecter les problèmes)

    après faut voir aussi comment tu envoies les données entre les 2 logiciels

    sinon tu peux utiliser un timer qui execute les 50 "requetes" et au bout de 10x arreter le timer
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  4. #4
    Membre émérite

    Profil pro
    Inscrit en
    Février 2004
    Messages
    862
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2004
    Messages : 862
    Par défaut
    Citation Envoyé par sperot51 Voir le message

    après faut voir aussi comment tu envoies les données entre les 2 logiciels
    +1

    Ensuite, ralentir artificiellement l'envoi des données me paraît une solution un peu bancale...
    Je chercherais plutôt des pistes comme

    • Blindage du destinataire; un thread tampon qui reçoit, un thread qui traite...
    • Traitement par lots et communication entre l'envoyeur et le destinataire (lot 1 ok, next please...)

  5. #5
    Membre Expert
    Avatar de Aspic
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    3 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2005
    Messages : 3 905
    Par défaut
    Déjà, ralentir une boucle c'est bizarre... perso je cherche à les accélérer

    Si tu veux vraiment le faire, utilise un Timer et surtout pas de Sleep... ou autre truc dans le genre car c'est mauvais pour ton programme et tot ou tard tu auras des erreurs !
    Qui ne tente rien n'a rien !
    Ce qui ne nous tue pas nous rends plus fort !!
    Mon projet ZELDA en C++/Allegro
    http://www.tutoworld.com - Le Forum -
    Mes ressources Dotnet (cours, sources, tutos)
    --------------------------------------------
    + + =

    Ne pas oublier le Tag !

  6. #6
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    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 204
    Par défaut
    sleep sur un thread non principal est mieux que des timers, enfin plus fiables
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

Discussions similaires

  1. Traitement dans une boucle <nested:iterate>
    Par charles888 dans le forum Struts 1
    Réponses: 1
    Dernier message: 15/03/2012, 12h02
  2. ralentir l'exécution d'une boucle
    Par al9000 dans le forum Débuter
    Réponses: 9
    Dernier message: 08/03/2010, 12h21
  3. optimiser le temp du traitement d'une boucle
    Par riad_09 dans le forum Développement
    Réponses: 1
    Dernier message: 05/11/2009, 08h38
  4. Accélération d'un traitement dans une boucle
    Par mobi_bil dans le forum Langage
    Réponses: 4
    Dernier message: 15/06/2009, 12h57
  5. [DEBUTANT]Procédure stockée Traitement sur une boucle de requete
    Par tripper.dim dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 21/06/2007, 16h24

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